
// Copyright (C) 2009-2011 Luca Piccioni
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;

#pragma warning disable 1572, 1573

namespace Derm.OpenGL {

	/// <summary>
	/// Implementation of the OpenGL specification 
	/// </summary>
	public unsafe partial class Gl : ProcLoader
	{

		/// <summary>
		/// Binding for glAsyncMarkerSGIX function.
		/// </summary>
		/// <param name="marker">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void AsyncMarkerSGIX(UInt32 marker) {
			if      (Delegates.pglAsyncMarkerSGIX != null)
				Delegates.pglAsyncMarkerSGIX(marker);
			else
				throw new InvalidOperationException("binding point AsyncMarkerSGIX cannot be found");
			LogProc("glAsyncMarkerSGIX({0})", marker);
		}

		/// <summary>
		/// Binding for glBindVertexArrayAPPLE function.
		/// </summary>
		/// <param name="array">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void BindVertexArrayAPPLE(UInt32 array) {
			if      (Delegates.pglBindVertexArrayAPPLE != null)
				Delegates.pglBindVertexArrayAPPLE(array);
			else
				throw new InvalidOperationException("binding point BindVertexArrayAPPLE cannot be found");
			LogProc("glBindVertexArrayAPPLE({0})", array);
		}

		/// <summary>
		/// Binding for glBlendFuncSeparateINGR function.
		/// </summary>
		/// <param name="sfactorRGB">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="dfactorRGB">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="sfactorAlpha">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="dfactorAlpha">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void BlendFuncSeparateINGR(int sfactorRGB, int dfactorRGB, int sfactorAlpha, int dfactorAlpha) {
			if      (Delegates.pglBlendFuncSeparateINGR != null)
				Delegates.pglBlendFuncSeparateINGR(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
			else
				throw new InvalidOperationException("binding point BlendFuncSeparateINGR cannot be found");
			LogProc("glBlendFuncSeparateINGR({0}, {1}, {2}, {3})", sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
		}

		/// <summary>
		/// Binding for glBufferParameteriAPPLE function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.5
		public static void BufferParameterAPPLE(int target, int pname, int param) {
			if      (Delegates.pglBufferParameteriAPPLE != null)
				Delegates.pglBufferParameteriAPPLE(target, pname, param);
			else
				throw new InvalidOperationException("binding point BufferParameterAPPLE cannot be found");
			LogProc("glBufferParameteriAPPLE({0}, {1}, {2})", target, pname, param);
		}

		/// <summary>
		/// Binding for glColorPointervINTEL function.
		/// </summary>
		/// <param name="size">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pointer">
		/// A <see cref="T:System.IntPtr*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void ColorPointerINTEL(int size, int type, IntPtr[] pointer) {
			unsafe {
				fixed (IntPtr* fp_pointer = pointer)
				{
					if      (Delegates.pglColorPointervINTEL != null)
						Delegates.pglColorPointervINTEL(size, type, fp_pointer);
					else
						throw new InvalidOperationException("binding point ColorPointerINTEL cannot be found");
				}
			}
			LogProc("glColorPointervINTEL({0}, {1}, {2})", size, type, pointer);
		}

		/// <summary>
		/// Binding for glColorTableParameterfvSGI function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void ColorTableParameterSGI(int target, int pname, float[] @params) {
			unsafe {
				fixed (float* fp_params = @params)
				{
					if      (Delegates.pglColorTableParameterfvSGI != null)
						Delegates.pglColorTableParameterfvSGI(target, pname, fp_params);
					else
						throw new InvalidOperationException("binding point ColorTableParameterSGI cannot be found");
				}
			}
			LogProc("glColorTableParameterfvSGI({0}, {1}, {2})", target, pname, @params);
		}

		/// <summary>
		/// Binding for glColorTableParameterivSGI function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void ColorTableParameterSGI(int target, int pname, int[] @params) {
			unsafe {
				fixed (int* fp_params = @params)
				{
					if      (Delegates.pglColorTableParameterivSGI != null)
						Delegates.pglColorTableParameterivSGI(target, pname, fp_params);
					else
						throw new InvalidOperationException("binding point ColorTableParameterSGI cannot be found");
				}
			}
			LogProc("glColorTableParameterivSGI({0}, {1}, {2})", target, pname, @params);
		}

		/// <summary>
		/// Binding for glColorTableSGI function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="table">
		/// A <see cref="T:System.IntPtr"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void ColorTableSGI(int target, int internalformat, Int32 width, int format, int type, object table) {
			GCHandle pp_table = GCHandle.Alloc(table, GCHandleType.Pinned);
			try {
				if      (Delegates.pglColorTableSGI != null)
					Delegates.pglColorTableSGI(target, internalformat, width, format, type, pp_table.AddrOfPinnedObject());
				else
					throw new InvalidOperationException("binding point ColorTableSGI cannot be found");
			} finally {
				pp_table.Free();
			}
			LogProc("glColorTableSGI({0}, {1}, {2}, {3}, {4}, {5})", target, internalformat, width, format, type, table);
		}

		/// <summary>
		/// Binding for glCopyColorTableSGI function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="x">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void CopyColorTableSGI(int target, int internalformat, int x, int y, Int32 width) {
			if      (Delegates.pglCopyColorTableSGI != null)
				Delegates.pglCopyColorTableSGI(target, internalformat, x, y, width);
			else
				throw new InvalidOperationException("binding point CopyColorTableSGI cannot be found");
			LogProc("glCopyColorTableSGI({0}, {1}, {2}, {3}, {4})", target, internalformat, x, y, width);
		}

		/// <summary>
		/// Binding for glDeformationMap3dSGIX function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="u1">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="u2">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="ustride">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="uorder">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="v1">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="v2">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="vstride">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="vorder">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="w1">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="w2">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="wstride">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="worder">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="points">
		/// A <see cref="T:System.Double*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void DeformationMap3SGIX(int target, double u1, double u2, int ustride, int uorder, double v1, double v2, int vstride, int vorder, double w1, double w2, int wstride, int worder, double[] points) {
			unsafe {
				fixed (double* fp_points = points)
				{
					if      (Delegates.pglDeformationMap3dSGIX != null)
						Delegates.pglDeformationMap3dSGIX(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, fp_points);
					else
						throw new InvalidOperationException("binding point DeformationMap3SGIX cannot be found");
				}
			}
			LogProc("glDeformationMap3dSGIX({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}, {12}, {13})", target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points);
		}

		/// <summary>
		/// Binding for glDeformationMap3fSGIX function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="u1">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="u2">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="ustride">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="uorder">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="v1">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="v2">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="vstride">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="vorder">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="w1">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="w2">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="wstride">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="worder">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="points">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void DeformationMap3SGIX(int target, float u1, float u2, int ustride, int uorder, float v1, float v2, int vstride, int vorder, float w1, float w2, int wstride, int worder, float[] points) {
			unsafe {
				fixed (float* fp_points = points)
				{
					if      (Delegates.pglDeformationMap3fSGIX != null)
						Delegates.pglDeformationMap3fSGIX(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, fp_points);
					else
						throw new InvalidOperationException("binding point DeformationMap3SGIX cannot be found");
				}
			}
			LogProc("glDeformationMap3fSGIX({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}, {12}, {13})", target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, w1, w2, wstride, worder, points);
		}

		/// <summary>
		/// Binding for glDeformSGIX function.
		/// </summary>
		/// <param name="mask">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void DeformSGIX(uint mask) {
			if      (Delegates.pglDeformSGIX != null)
				Delegates.pglDeformSGIX(mask);
			else
				throw new InvalidOperationException("binding point DeformSGIX cannot be found");
			LogProc("glDeformSGIX({0})", mask);
		}

		/// <summary>
		/// Binding for glDeleteAsyncMarkersSGIX function.
		/// </summary>
		/// <param name="marker">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="range">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void DeleteAsyncMarkerSGIX(UInt32 marker, Int32 range) {
			if      (Delegates.pglDeleteAsyncMarkersSGIX != null)
				Delegates.pglDeleteAsyncMarkersSGIX(marker, range);
			else
				throw new InvalidOperationException("binding point DeleteAsyncMarkerSGIX cannot be found");
			LogProc("glDeleteAsyncMarkersSGIX({0}, {1})", marker, range);
		}

		/// <summary>
		/// Binding for glDeleteFencesAPPLE function.
		/// </summary>
		/// <param name="n">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="fences">
		/// A <see cref="T:System.UInt32*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void DeleteFencesAPPLE(Int32 n, UInt32[] fences) {
			unsafe {
				fixed (UInt32* fp_fences = fences)
				{
					if      (Delegates.pglDeleteFencesAPPLE != null)
						Delegates.pglDeleteFencesAPPLE(n, fp_fences);
					else
						throw new InvalidOperationException("binding point DeleteFencesAPPLE cannot be found");
				}
			}
			LogProc("glDeleteFencesAPPLE({0}, {1})", n, fences);
		}

		/// <summary>
		/// Binding for glDeleteVertexArraysAPPLE function.
		/// </summary>
		/// <param name="n">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="arrays">
		/// A <see cref="T:System.UInt32*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void DeleteVertexArraysAPPLE(Int32 n, UInt32[] arrays) {
			unsafe {
				fixed (UInt32* fp_arrays = arrays)
				{
					if      (Delegates.pglDeleteVertexArraysAPPLE != null)
						Delegates.pglDeleteVertexArraysAPPLE(n, fp_arrays);
					else
						throw new InvalidOperationException("binding point DeleteVertexArraysAPPLE cannot be found");
				}
			}
			LogProc("glDeleteVertexArraysAPPLE({0}, {1})", n, arrays);
		}

		/// <summary>
		/// Binding for glDeleteVertexArraysAPPLE function.
		/// </summary>
		/// <param name="n">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="arrays">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void DeleteVertexArraysAPPLE(Int32 n, UInt32* arrays) {
			unsafe {
				if      (Delegates.pglDeleteVertexArraysAPPLE != null)
					Delegates.pglDeleteVertexArraysAPPLE(n, arrays);
				else
					throw new InvalidOperationException("binding point DeleteVertexArraysAPPLE cannot be found");
			}
			LogProc("glDeleteVertexArraysAPPLE({0}, {1})", n, "arrays");
		}
		

		/// <summary>
		/// Binding for glDetailTexFuncSGIS function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="n">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="points">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void DetailTexFuncSGIS(int target, Int32 n, float[] points) {
			unsafe {
				fixed (float* fp_points = points)
				{
					if      (Delegates.pglDetailTexFuncSGIS != null)
						Delegates.pglDetailTexFuncSGIS(target, n, fp_points);
					else
						throw new InvalidOperationException("binding point DetailTexFuncSGIS cannot be found");
				}
			}
			LogProc("glDetailTexFuncSGIS({0}, {1}, {2})", target, n, points);
		}

		/// <summary>
		/// Binding for glDetailTexFuncSGIS function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="n">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="points">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void DetailTexFuncSGIS(int target, Int32 n, float* points) {
			unsafe {
				if      (Delegates.pglDetailTexFuncSGIS != null)
					Delegates.pglDetailTexFuncSGIS(target, n, points);
				else
					throw new InvalidOperationException("binding point DetailTexFuncSGIS cannot be found");
			}
			LogProc("glDetailTexFuncSGIS({0}, {1}, {2})", target, n, "points");
		}
		

		/// <summary>
		/// Binding for glDisableVertexAttribAPPLE function.
		/// </summary>
		/// <param name="index">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.5
		public static void DisableVertexAttribAPPLE(UInt32 index, int pname) {
			if      (Delegates.pglDisableVertexAttribAPPLE != null)
				Delegates.pglDisableVertexAttribAPPLE(index, pname);
			else
				throw new InvalidOperationException("binding point DisableVertexAttribAPPLE cannot be found");
			LogProc("glDisableVertexAttribAPPLE({0}, {1})", index, pname);
		}

		/// <summary>
		/// Binding for glDrawElementArrayAPPLE function.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="first">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="count">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void DrawElementArrayAPPLE(int mode, int first, Int32 count) {
			if      (Delegates.pglDrawElementArrayAPPLE != null)
				Delegates.pglDrawElementArrayAPPLE(mode, first, count);
			else
				throw new InvalidOperationException("binding point DrawElementArrayAPPLE cannot be found");
			LogProc("glDrawElementArrayAPPLE({0}, {1}, {2})", mode, first, count);
		}

		/// <summary>
		/// Binding for glDrawMeshArraysSUN function.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="first">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="count">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void DrawMeshArraysSUN(int mode, int first, Int32 count, Int32 width) {
			if      (Delegates.pglDrawMeshArraysSUN != null)
				Delegates.pglDrawMeshArraysSUN(mode, first, count, width);
			else
				throw new InvalidOperationException("binding point DrawMeshArraysSUN cannot be found");
			LogProc("glDrawMeshArraysSUN({0}, {1}, {2}, {3})", mode, first, count, width);
		}

		/// <summary>
		/// Binding for glDrawRangeElementArrayAPPLE function.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="start">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="end">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="first">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="count">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void DrawRangeElementArrayAPPLE(int mode, UInt32 start, UInt32 end, int first, Int32 count) {
			if      (Delegates.pglDrawRangeElementArrayAPPLE != null)
				Delegates.pglDrawRangeElementArrayAPPLE(mode, start, end, first, count);
			else
				throw new InvalidOperationException("binding point DrawRangeElementArrayAPPLE cannot be found");
			LogProc("glDrawRangeElementArrayAPPLE({0}, {1}, {2}, {3}, {4})", mode, start, end, first, count);
		}

		/// <summary>
		/// Binding for glElementPointerAPPLE function.
		/// </summary>
		/// <param name="type">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pointer">
		/// A <see cref="T:System.IntPtr"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void ElementPointerAPPLE(int type, object pointer) {
			GCHandle pp_pointer = GCHandle.Alloc(pointer, GCHandleType.Pinned);
			try {
				if      (Delegates.pglElementPointerAPPLE != null)
					Delegates.pglElementPointerAPPLE(type, pp_pointer.AddrOfPinnedObject());
				else
					throw new InvalidOperationException("binding point ElementPointerAPPLE cannot be found");
			} finally {
				pp_pointer.Free();
			}
			LogProc("glElementPointerAPPLE({0}, {1})", type, pointer);
		}

		/// <summary>
		/// Binding for glEnableVertexAttribAPPLE function.
		/// </summary>
		/// <param name="index">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.5
		public static void EnableVertexAttribAPPLE(UInt32 index, int pname) {
			if      (Delegates.pglEnableVertexAttribAPPLE != null)
				Delegates.pglEnableVertexAttribAPPLE(index, pname);
			else
				throw new InvalidOperationException("binding point EnableVertexAttribAPPLE cannot be found");
			LogProc("glEnableVertexAttribAPPLE({0}, {1})", index, pname);
		}

		/// <summary>
		/// Binding for glFinishAsyncSGIX function.
		/// </summary>
		/// <param name="markerp">
		/// A <see cref="T:System.UInt32"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static int FinishAsyncSGIX([Out] out UInt32 markerp) {
			int retvalue;
			unsafe {
				fixed (UInt32* fp_markerp = &markerp)
				{
					if      (Delegates.pglFinishAsyncSGIX != null)
						retvalue = (Delegates.pglFinishAsyncSGIX(fp_markerp));
					else
						throw new InvalidOperationException("binding point FinishAsyncSGIX cannot be found");
				}
			}
			LogProc("glFinishAsyncSGIX({0}) = {1}", markerp, retvalue);
			return (retvalue);
		}

		/// <summary>
		/// Binding for glFinishFenceAPPLE function.
		/// </summary>
		/// <param name="fence">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void FinishFenceAPPLE(UInt32 fence) {
			if      (Delegates.pglFinishFenceAPPLE != null)
				Delegates.pglFinishFenceAPPLE(fence);
			else
				throw new InvalidOperationException("binding point FinishFenceAPPLE cannot be found");
			LogProc("glFinishFenceAPPLE({0})", fence);
		}

		/// <summary>
		/// Binding for glFinishObjectAPPLE function.
		/// </summary>
		/// <param name="object">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="name">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void FinishObjectAPPLE(int @object, int name) {
			if      (Delegates.pglFinishObjectAPPLE != null)
				Delegates.pglFinishObjectAPPLE(@object, name);
			else
				throw new InvalidOperationException("binding point FinishObjectAPPLE cannot be found");
			LogProc("glFinishObjectAPPLE({0}, {1})", @object, name);
		}

		/// <summary>
		/// Binding for glFinishTextureSUNX function.
		/// </summary>
		/// @note This routine is available from OpenGL 1.1
		public static void FinishTextureSUNX() {
			if      (Delegates.pglFinishTextureSUNX != null)
				Delegates.pglFinishTextureSUNX();
			else
				throw new InvalidOperationException("binding point FinishTextureSUNX cannot be found");
			LogProc("glFinishTextureSUNX()");
		}

		/// <summary>
		/// Binding for glFlushMappedBufferRangeAPPLE function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="offset">
		/// A <see cref="T:System.IntPtr"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.5
		public static void FlushMappedBufferRangeAPPLE(int target, IntPtr offset, UInt32 size) {
			if      (Delegates.pglFlushMappedBufferRangeAPPLE != null)
				Delegates.pglFlushMappedBufferRangeAPPLE(target, offset, size);
			else
				throw new InvalidOperationException("binding point FlushMappedBufferRangeAPPLE cannot be found");
			LogProc("glFlushMappedBufferRangeAPPLE({0}, {1}, {2})", target, offset, size);
		}

		/// <summary>
		/// Binding for glFlushRasterSGIX function.
		/// </summary>
		/// @note This routine is available from OpenGL 1.0
		public static void FlushRasterSGIX() {
			if      (Delegates.pglFlushRasterSGIX != null)
				Delegates.pglFlushRasterSGIX();
			else
				throw new InvalidOperationException("binding point FlushRasterSGIX cannot be found");
			LogProc("glFlushRasterSGIX()");
		}

		/// <summary>
		/// Binding for glFlushVertexArrayRangeAPPLE function.
		/// </summary>
		/// <param name="length">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pointer">
		/// A <see cref="T:System.IntPtr"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void FlushVertexArrayRangeAPPLE(Int32 length, [Out] object pointer) {
			GCHandle pp_pointer = GCHandle.Alloc(pointer, GCHandleType.Pinned);
			try {
				if      (Delegates.pglFlushVertexArrayRangeAPPLE != null)
					Delegates.pglFlushVertexArrayRangeAPPLE(length, pp_pointer.AddrOfPinnedObject());
				else
					throw new InvalidOperationException("binding point FlushVertexArrayRangeAPPLE cannot be found");
			} finally {
				pp_pointer.Free();
			}
			LogProc("glFlushVertexArrayRangeAPPLE({0}, {1})", length, pointer);
		}

		/// <summary>
		/// Binding for glFogFuncSGIS function.
		/// </summary>
		/// <param name="n">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="points">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void FogFuncSGIS(Int32 n, float[] points) {
			unsafe {
				fixed (float* fp_points = points)
				{
					if      (Delegates.pglFogFuncSGIS != null)
						Delegates.pglFogFuncSGIS(n, fp_points);
					else
						throw new InvalidOperationException("binding point FogFuncSGIS cannot be found");
				}
			}
			LogProc("glFogFuncSGIS({0}, {1})", n, points);
		}

		/// <summary>
		/// Binding for glFogFuncSGIS function.
		/// </summary>
		/// <param name="n">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="points">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void FogFuncSGIS(Int32 n, float* points) {
			unsafe {
				if      (Delegates.pglFogFuncSGIS != null)
					Delegates.pglFogFuncSGIS(n, points);
				else
					throw new InvalidOperationException("binding point FogFuncSGIS cannot be found");
			}
			LogProc("glFogFuncSGIS({0}, {1})", n, "points");
		}
		

		/// <summary>
		/// Binding for glFragmentColorMaterialSGIX function.
		/// </summary>
		/// <param name="face">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="mode">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void FragmentColorMaterialSGIX(int face, int mode) {
			if      (Delegates.pglFragmentColorMaterialSGIX != null)
				Delegates.pglFragmentColorMaterialSGIX(face, mode);
			else
				throw new InvalidOperationException("binding point FragmentColorMaterialSGIX cannot be found");
			LogProc("glFragmentColorMaterialSGIX({0}, {1})", face, mode);
		}

		/// <summary>
		/// Binding for glFragmentLightfSGIX function.
		/// </summary>
		/// <param name="light">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void FragmentLightSGIX(int light, int pname, float param) {
			if      (Delegates.pglFragmentLightfSGIX != null)
				Delegates.pglFragmentLightfSGIX(light, pname, param);
			else
				throw new InvalidOperationException("binding point FragmentLightSGIX cannot be found");
			LogProc("glFragmentLightfSGIX({0}, {1}, {2})", light, pname, param);
		}

		/// <summary>
		/// Binding for glFragmentLightfvSGIX function.
		/// </summary>
		/// <param name="light">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void FragmentLightSGIX(int light, int pname, float[] @params) {
			unsafe {
				fixed (float* fp_params = @params)
				{
					if      (Delegates.pglFragmentLightfvSGIX != null)
						Delegates.pglFragmentLightfvSGIX(light, pname, fp_params);
					else
						throw new InvalidOperationException("binding point FragmentLightSGIX cannot be found");
				}
			}
			LogProc("glFragmentLightfvSGIX({0}, {1}, {2})", light, pname, @params);
		}

		/// <summary>
		/// Binding for glFragmentLightiSGIX function.
		/// </summary>
		/// <param name="light">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void FragmentLightSGIX(int light, int pname, int param) {
			if      (Delegates.pglFragmentLightiSGIX != null)
				Delegates.pglFragmentLightiSGIX(light, pname, param);
			else
				throw new InvalidOperationException("binding point FragmentLightSGIX cannot be found");
			LogProc("glFragmentLightiSGIX({0}, {1}, {2})", light, pname, param);
		}

		/// <summary>
		/// Binding for glFragmentLightivSGIX function.
		/// </summary>
		/// <param name="light">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void FragmentLightSGIX(int light, int pname, int[] @params) {
			unsafe {
				fixed (int* fp_params = @params)
				{
					if      (Delegates.pglFragmentLightivSGIX != null)
						Delegates.pglFragmentLightivSGIX(light, pname, fp_params);
					else
						throw new InvalidOperationException("binding point FragmentLightSGIX cannot be found");
				}
			}
			LogProc("glFragmentLightivSGIX({0}, {1}, {2})", light, pname, @params);
		}

		/// <summary>
		/// Binding for glFragmentLightModelfSGIX function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void FragmentLightModelSGIX(int pname, float param) {
			if      (Delegates.pglFragmentLightModelfSGIX != null)
				Delegates.pglFragmentLightModelfSGIX(pname, param);
			else
				throw new InvalidOperationException("binding point FragmentLightModelSGIX cannot be found");
			LogProc("glFragmentLightModelfSGIX({0}, {1})", pname, param);
		}

		/// <summary>
		/// Binding for glFragmentLightModelfvSGIX function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void FragmentLightModelSGIX(int pname, float[] @params) {
			unsafe {
				fixed (float* fp_params = @params)
				{
					if      (Delegates.pglFragmentLightModelfvSGIX != null)
						Delegates.pglFragmentLightModelfvSGIX(pname, fp_params);
					else
						throw new InvalidOperationException("binding point FragmentLightModelSGIX cannot be found");
				}
			}
			LogProc("glFragmentLightModelfvSGIX({0}, {1})", pname, @params);
		}

		/// <summary>
		/// Binding for glFragmentLightModeliSGIX function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void FragmentLightModelSGIX(int pname, int param) {
			if      (Delegates.pglFragmentLightModeliSGIX != null)
				Delegates.pglFragmentLightModeliSGIX(pname, param);
			else
				throw new InvalidOperationException("binding point FragmentLightModelSGIX cannot be found");
			LogProc("glFragmentLightModeliSGIX({0}, {1})", pname, param);
		}

		/// <summary>
		/// Binding for glFragmentLightModelivSGIX function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void FragmentLightModelSGIX(int pname, int[] @params) {
			unsafe {
				fixed (int* fp_params = @params)
				{
					if      (Delegates.pglFragmentLightModelivSGIX != null)
						Delegates.pglFragmentLightModelivSGIX(pname, fp_params);
					else
						throw new InvalidOperationException("binding point FragmentLightModelSGIX cannot be found");
				}
			}
			LogProc("glFragmentLightModelivSGIX({0}, {1})", pname, @params);
		}

		/// <summary>
		/// Binding for glFragmentMaterialfSGIX function.
		/// </summary>
		/// <param name="face">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void FragmentMaterialSGIX(int face, int pname, float param) {
			if      (Delegates.pglFragmentMaterialfSGIX != null)
				Delegates.pglFragmentMaterialfSGIX(face, pname, param);
			else
				throw new InvalidOperationException("binding point FragmentMaterialSGIX cannot be found");
			LogProc("glFragmentMaterialfSGIX({0}, {1}, {2})", face, pname, param);
		}

		/// <summary>
		/// Binding for glFragmentMaterialfvSGIX function.
		/// </summary>
		/// <param name="face">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void FragmentMaterialSGIX(int face, int pname, float[] @params) {
			unsafe {
				fixed (float* fp_params = @params)
				{
					if      (Delegates.pglFragmentMaterialfvSGIX != null)
						Delegates.pglFragmentMaterialfvSGIX(face, pname, fp_params);
					else
						throw new InvalidOperationException("binding point FragmentMaterialSGIX cannot be found");
				}
			}
			LogProc("glFragmentMaterialfvSGIX({0}, {1}, {2})", face, pname, @params);
		}

		/// <summary>
		/// Binding for glFragmentMaterialiSGIX function.
		/// </summary>
		/// <param name="face">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void FragmentMaterialSGIX(int face, int pname, int param) {
			if      (Delegates.pglFragmentMaterialiSGIX != null)
				Delegates.pglFragmentMaterialiSGIX(face, pname, param);
			else
				throw new InvalidOperationException("binding point FragmentMaterialSGIX cannot be found");
			LogProc("glFragmentMaterialiSGIX({0}, {1}, {2})", face, pname, param);
		}

		/// <summary>
		/// Binding for glFragmentMaterialivSGIX function.
		/// </summary>
		/// <param name="face">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void FragmentMaterialSGIX(int face, int pname, int[] @params) {
			unsafe {
				fixed (int* fp_params = @params)
				{
					if      (Delegates.pglFragmentMaterialivSGIX != null)
						Delegates.pglFragmentMaterialivSGIX(face, pname, fp_params);
					else
						throw new InvalidOperationException("binding point FragmentMaterialSGIX cannot be found");
				}
			}
			LogProc("glFragmentMaterialivSGIX({0}, {1}, {2})", face, pname, @params);
		}

		/// <summary>
		/// Binding for glFrameTerminatorGREMEDY function.
		/// </summary>
		/// @note This routine is available from OpenGL 1.0
		public static void FrameTerminatorGREMEDY() {
			if      (Delegates.pglFrameTerminatorGREMEDY != null)
				Delegates.pglFrameTerminatorGREMEDY();
			else
				throw new InvalidOperationException("binding point FrameTerminatorGREMEDY cannot be found");
			LogProc("glFrameTerminatorGREMEDY()");
		}

		/// <summary>
		/// Binding for glFrameZoomSGIX function.
		/// </summary>
		/// <param name="factor">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void FrameZoomSGIX(int factor) {
			if      (Delegates.pglFrameZoomSGIX != null)
				Delegates.pglFrameZoomSGIX(factor);
			else
				throw new InvalidOperationException("binding point FrameZoomSGIX cannot be found");
			LogProc("glFrameZoomSGIX({0})", factor);
		}

		/// <summary>
		/// Binding for glGenAsyncMarkersSGIX function.
		/// </summary>
		/// <param name="range">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static UInt32 GenAsyncMarkerSGIX(Int32 range) {
			UInt32 retvalue;
			if      (Delegates.pglGenAsyncMarkersSGIX != null)
				retvalue = (Delegates.pglGenAsyncMarkersSGIX(range));
			else
				throw new InvalidOperationException("binding point GenAsyncMarkerSGIX cannot be found");
			LogProc("glGenAsyncMarkersSGIX({0}) = {1}", range, retvalue);
			return (retvalue);
		}

		/// <summary>
		/// Binding for glGenFencesAPPLE function.
		/// </summary>
		/// <param name="n">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="fences">
		/// A <see cref="T:System.UInt32*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void GenFencesAPPLE(Int32 n, [Out] UInt32[] fences) {
			unsafe {
				fixed (UInt32* fp_fences = fences)
				{
					if      (Delegates.pglGenFencesAPPLE != null)
						Delegates.pglGenFencesAPPLE(n, fp_fences);
					else
						throw new InvalidOperationException("binding point GenFencesAPPLE cannot be found");
				}
			}
			LogProc("glGenFencesAPPLE({0}, {1})", n, fences);
		}

		/// <summary>
		/// Binding for glGenFencesAPPLE function.
		/// </summary>
		/// <param name="n">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="fences">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void GenFencesAPPLE(Int32 n, out UInt32 fences) {
			unsafe {
				fixed (UInt32* fp_fences = &fences)
				{
					if      (Delegates.pglGenFencesAPPLE != null)
						Delegates.pglGenFencesAPPLE(n, fp_fences);
					else
						throw new InvalidOperationException("binding point GenFencesAPPLE cannot be found");
				}
			}
			LogProc("glGenFencesAPPLE({0}, {1})", n, fences);
		}
		

		/// <summary>
		/// Binding for glGenVertexArraysAPPLE function.
		/// </summary>
		/// <param name="n">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="arrays">
		/// A <see cref="T:System.UInt32*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void GenVertexArraysAPPLE(Int32 n, [Out] UInt32[] arrays) {
			unsafe {
				fixed (UInt32* fp_arrays = arrays)
				{
					if      (Delegates.pglGenVertexArraysAPPLE != null)
						Delegates.pglGenVertexArraysAPPLE(n, fp_arrays);
					else
						throw new InvalidOperationException("binding point GenVertexArraysAPPLE cannot be found");
				}
			}
			LogProc("glGenVertexArraysAPPLE({0}, {1})", n, arrays);
		}

		/// <summary>
		/// Binding for glGenVertexArraysAPPLE function.
		/// </summary>
		/// <param name="n">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="arrays">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void GenVertexArraysAPPLE(Int32 n, out UInt32 arrays) {
			unsafe {
				fixed (UInt32* fp_arrays = &arrays)
				{
					if      (Delegates.pglGenVertexArraysAPPLE != null)
						Delegates.pglGenVertexArraysAPPLE(n, fp_arrays);
					else
						throw new InvalidOperationException("binding point GenVertexArraysAPPLE cannot be found");
				}
			}
			LogProc("glGenVertexArraysAPPLE({0}, {1})", n, arrays);
		}
		
		/// <summary>
		/// Binding for glGenVertexArraysAPPLE function.
		/// </summary>
		/// <param name="n">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="arrays">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void GenVertexArraysAPPLE(Int32 n, UInt32* arrays) {
			unsafe {
				if      (Delegates.pglGenVertexArraysAPPLE != null)
					Delegates.pglGenVertexArraysAPPLE(n, arrays);
				else
					throw new InvalidOperationException("binding point GenVertexArraysAPPLE cannot be found");
			}
			LogProc("glGenVertexArraysAPPLE({0}, {1})", n, "arrays");
		}
		

		/// <summary>
		/// Binding for glGetColorTableParameterfvSGI function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetColorTableParameterSGI(int target, int pname, [Out] float[] @params) {
			unsafe {
				fixed (float* fp_params = @params)
				{
					if      (Delegates.pglGetColorTableParameterfvSGI != null)
						Delegates.pglGetColorTableParameterfvSGI(target, pname, fp_params);
					else
						throw new InvalidOperationException("binding point GetColorTableParameterSGI cannot be found");
				}
			}
			LogProc("glGetColorTableParameterfvSGI({0}, {1}, {2})", target, pname, @params);
		}

		/// <summary>
		/// Binding for glGetColorTableParameterfvSGI function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetColorTableParameterSGI(int target, int pname, float* @params) {
			unsafe {
				if      (Delegates.pglGetColorTableParameterfvSGI != null)
					Delegates.pglGetColorTableParameterfvSGI(target, pname, @params);
				else
					throw new InvalidOperationException("binding point GetColorTableParameterSGI cannot be found");
			}
			LogProc("glGetColorTableParameterfvSGI({0}, {1}, {2})", target, pname, "@params");
		}
		

		/// <summary>
		/// Binding for glGetColorTableParameterivSGI function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetColorTableParameterSGI(int target, int pname, [Out] int[] @params) {
			unsafe {
				fixed (int* fp_params = @params)
				{
					if      (Delegates.pglGetColorTableParameterivSGI != null)
						Delegates.pglGetColorTableParameterivSGI(target, pname, fp_params);
					else
						throw new InvalidOperationException("binding point GetColorTableParameterSGI cannot be found");
				}
			}
			LogProc("glGetColorTableParameterivSGI({0}, {1}, {2})", target, pname, @params);
		}

		/// <summary>
		/// Binding for glGetColorTableParameterivSGI function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetColorTableParameterSGI(int target, int pname, int* @params) {
			unsafe {
				if      (Delegates.pglGetColorTableParameterivSGI != null)
					Delegates.pglGetColorTableParameterivSGI(target, pname, @params);
				else
					throw new InvalidOperationException("binding point GetColorTableParameterSGI cannot be found");
			}
			LogProc("glGetColorTableParameterivSGI({0}, {1}, {2})", target, pname, "@params");
		}
		

		/// <summary>
		/// Binding for glGetColorTableSGI function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="table">
		/// A <see cref="T:System.IntPtr"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetColorTableSGI(int target, int format, int type, [Out] object table) {
			GCHandle pp_table = GCHandle.Alloc(table, GCHandleType.Pinned);
			try {
				if      (Delegates.pglGetColorTableSGI != null)
					Delegates.pglGetColorTableSGI(target, format, type, pp_table.AddrOfPinnedObject());
				else
					throw new InvalidOperationException("binding point GetColorTableSGI cannot be found");
			} finally {
				pp_table.Free();
			}
			LogProc("glGetColorTableSGI({0}, {1}, {2}, {3})", target, format, type, table);
		}

		/// <summary>
		/// Binding for glGetDetailTexFuncSGIS function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="points">
		/// A <see cref="T:System.Single*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetDetailTexFuncSGIS(int target, [Out] float[] points) {
			unsafe {
				fixed (float* fp_points = points)
				{
					if      (Delegates.pglGetDetailTexFuncSGIS != null)
						Delegates.pglGetDetailTexFuncSGIS(target, fp_points);
					else
						throw new InvalidOperationException("binding point GetDetailTexFuncSGIS cannot be found");
				}
			}
			LogProc("glGetDetailTexFuncSGIS({0}, {1})", target, points);
		}

		/// <summary>
		/// Binding for glGetDetailTexFuncSGIS function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="points">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetDetailTexFuncSGIS(int target, float* points) {
			unsafe {
				if      (Delegates.pglGetDetailTexFuncSGIS != null)
					Delegates.pglGetDetailTexFuncSGIS(target, points);
				else
					throw new InvalidOperationException("binding point GetDetailTexFuncSGIS cannot be found");
			}
			LogProc("glGetDetailTexFuncSGIS({0}, {1})", target, "points");
		}
		

		/// <summary>
		/// Binding for glGetFogFuncSGIS function.
		/// </summary>
		/// <param name="points">
		/// A <see cref="T:System.Single*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void GetFogFuncSGIS([Out] float[] points) {
			unsafe {
				fixed (float* fp_points = points)
				{
					if      (Delegates.pglGetFogFuncSGIS != null)
						Delegates.pglGetFogFuncSGIS(fp_points);
					else
						throw new InvalidOperationException("binding point GetFogFuncSGIS cannot be found");
				}
			}
			LogProc("glGetFogFuncSGIS({0})", points);
		}

		/// <summary>
		/// Binding for glGetFogFuncSGIS function.
		/// </summary>
		/// <param name="points">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void GetFogFuncSGIS(float* points) {
			unsafe {
				if      (Delegates.pglGetFogFuncSGIS != null)
					Delegates.pglGetFogFuncSGIS(points);
				else
					throw new InvalidOperationException("binding point GetFogFuncSGIS cannot be found");
			}
			LogProc("glGetFogFuncSGIS({0})", "points");
		}
		

		/// <summary>
		/// Binding for glGetFragmentLightfvSGIX function.
		/// </summary>
		/// <param name="light">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetFragmentLightSGIX(int light, int pname, [Out] float[] @params) {
			unsafe {
				fixed (float* fp_params = @params)
				{
					if      (Delegates.pglGetFragmentLightfvSGIX != null)
						Delegates.pglGetFragmentLightfvSGIX(light, pname, fp_params);
					else
						throw new InvalidOperationException("binding point GetFragmentLightSGIX cannot be found");
				}
			}
			LogProc("glGetFragmentLightfvSGIX({0}, {1}, {2})", light, pname, @params);
		}

		/// <summary>
		/// Binding for glGetFragmentLightfvSGIX function.
		/// </summary>
		/// <param name="light">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetFragmentLightSGIX(int light, int pname, float* @params) {
			unsafe {
				if      (Delegates.pglGetFragmentLightfvSGIX != null)
					Delegates.pglGetFragmentLightfvSGIX(light, pname, @params);
				else
					throw new InvalidOperationException("binding point GetFragmentLightSGIX cannot be found");
			}
			LogProc("glGetFragmentLightfvSGIX({0}, {1}, {2})", light, pname, "@params");
		}
		

		/// <summary>
		/// Binding for glGetFragmentLightivSGIX function.
		/// </summary>
		/// <param name="light">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetFragmentLightSGIX(int light, int pname, [Out] int[] @params) {
			unsafe {
				fixed (int* fp_params = @params)
				{
					if      (Delegates.pglGetFragmentLightivSGIX != null)
						Delegates.pglGetFragmentLightivSGIX(light, pname, fp_params);
					else
						throw new InvalidOperationException("binding point GetFragmentLightSGIX cannot be found");
				}
			}
			LogProc("glGetFragmentLightivSGIX({0}, {1}, {2})", light, pname, @params);
		}

		/// <summary>
		/// Binding for glGetFragmentLightivSGIX function.
		/// </summary>
		/// <param name="light">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetFragmentLightSGIX(int light, int pname, int* @params) {
			unsafe {
				if      (Delegates.pglGetFragmentLightivSGIX != null)
					Delegates.pglGetFragmentLightivSGIX(light, pname, @params);
				else
					throw new InvalidOperationException("binding point GetFragmentLightSGIX cannot be found");
			}
			LogProc("glGetFragmentLightivSGIX({0}, {1}, {2})", light, pname, "@params");
		}
		

		/// <summary>
		/// Binding for glGetFragmentMaterialfvSGIX function.
		/// </summary>
		/// <param name="face">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetFragmentMaterialSGIX(int face, int pname, [Out] float[] @params) {
			unsafe {
				fixed (float* fp_params = @params)
				{
					if      (Delegates.pglGetFragmentMaterialfvSGIX != null)
						Delegates.pglGetFragmentMaterialfvSGIX(face, pname, fp_params);
					else
						throw new InvalidOperationException("binding point GetFragmentMaterialSGIX cannot be found");
				}
			}
			LogProc("glGetFragmentMaterialfvSGIX({0}, {1}, {2})", face, pname, @params);
		}

		/// <summary>
		/// Binding for glGetFragmentMaterialfvSGIX function.
		/// </summary>
		/// <param name="face">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetFragmentMaterialSGIX(int face, int pname, float* @params) {
			unsafe {
				if      (Delegates.pglGetFragmentMaterialfvSGIX != null)
					Delegates.pglGetFragmentMaterialfvSGIX(face, pname, @params);
				else
					throw new InvalidOperationException("binding point GetFragmentMaterialSGIX cannot be found");
			}
			LogProc("glGetFragmentMaterialfvSGIX({0}, {1}, {2})", face, pname, "@params");
		}
		

		/// <summary>
		/// Binding for glGetFragmentMaterialivSGIX function.
		/// </summary>
		/// <param name="face">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetFragmentMaterialSGIX(int face, int pname, [Out] int[] @params) {
			unsafe {
				fixed (int* fp_params = @params)
				{
					if      (Delegates.pglGetFragmentMaterialivSGIX != null)
						Delegates.pglGetFragmentMaterialivSGIX(face, pname, fp_params);
					else
						throw new InvalidOperationException("binding point GetFragmentMaterialSGIX cannot be found");
				}
			}
			LogProc("glGetFragmentMaterialivSGIX({0}, {1}, {2})", face, pname, @params);
		}

		/// <summary>
		/// Binding for glGetFragmentMaterialivSGIX function.
		/// </summary>
		/// <param name="face">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetFragmentMaterialSGIX(int face, int pname, int* @params) {
			unsafe {
				if      (Delegates.pglGetFragmentMaterialivSGIX != null)
					Delegates.pglGetFragmentMaterialivSGIX(face, pname, @params);
				else
					throw new InvalidOperationException("binding point GetFragmentMaterialSGIX cannot be found");
			}
			LogProc("glGetFragmentMaterialivSGIX({0}, {1}, {2})", face, pname, "@params");
		}
		

		/// <summary>
		/// Binding for glGetImageTransformParameterfvHP function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void GetImageTransformParameterHP(int target, int pname, [Out] float[] @params) {
			unsafe {
				fixed (float* fp_params = @params)
				{
					if      (Delegates.pglGetImageTransformParameterfvHP != null)
						Delegates.pglGetImageTransformParameterfvHP(target, pname, fp_params);
					else
						throw new InvalidOperationException("binding point GetImageTransformParameterHP cannot be found");
				}
			}
			LogProc("glGetImageTransformParameterfvHP({0}, {1}, {2})", target, pname, @params);
		}

		/// <summary>
		/// Binding for glGetImageTransformParameterfvHP function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void GetImageTransformParameterHP(int target, int pname, float* @params) {
			unsafe {
				if      (Delegates.pglGetImageTransformParameterfvHP != null)
					Delegates.pglGetImageTransformParameterfvHP(target, pname, @params);
				else
					throw new InvalidOperationException("binding point GetImageTransformParameterHP cannot be found");
			}
			LogProc("glGetImageTransformParameterfvHP({0}, {1}, {2})", target, pname, "@params");
		}
		

		/// <summary>
		/// Binding for glGetImageTransformParameterivHP function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void GetImageTransformParameterHP(int target, int pname, [Out] int[] @params) {
			unsafe {
				fixed (int* fp_params = @params)
				{
					if      (Delegates.pglGetImageTransformParameterivHP != null)
						Delegates.pglGetImageTransformParameterivHP(target, pname, fp_params);
					else
						throw new InvalidOperationException("binding point GetImageTransformParameterHP cannot be found");
				}
			}
			LogProc("glGetImageTransformParameterivHP({0}, {1}, {2})", target, pname, @params);
		}

		/// <summary>
		/// Binding for glGetImageTransformParameterivHP function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void GetImageTransformParameterHP(int target, int pname, int* @params) {
			unsafe {
				if      (Delegates.pglGetImageTransformParameterivHP != null)
					Delegates.pglGetImageTransformParameterivHP(target, pname, @params);
				else
					throw new InvalidOperationException("binding point GetImageTransformParameterHP cannot be found");
			}
			LogProc("glGetImageTransformParameterivHP({0}, {1}, {2})", target, pname, "@params");
		}
		

		/// <summary>
		/// Binding for glGetInstrumentsSGIX function.
		/// </summary>
		/// @note This routine is available from OpenGL 1.0
		public static int GetInstrumentsSGIX() {
			int retvalue;
			if      (Delegates.pglGetInstrumentsSGIX != null)
				retvalue = (Delegates.pglGetInstrumentsSGIX());
			else
				throw new InvalidOperationException("binding point GetInstrumentsSGIX cannot be found");
			LogProc("glGetInstrumentsSGIX()");
			return (retvalue);
		}

		/// <summary>
		/// Binding for glGetListParameterfvSGIX function.
		/// </summary>
		/// <param name="list">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetListParameterSGIX(UInt32 list, int pname, [Out] float[] @params) {
			unsafe {
				fixed (float* fp_params = @params)
				{
					if      (Delegates.pglGetListParameterfvSGIX != null)
						Delegates.pglGetListParameterfvSGIX(list, pname, fp_params);
					else
						throw new InvalidOperationException("binding point GetListParameterSGIX cannot be found");
				}
			}
			LogProc("glGetListParameterfvSGIX({0}, {1}, {2})", list, pname, @params);
		}

		/// <summary>
		/// Binding for glGetListParameterivSGIX function.
		/// </summary>
		/// <param name="list">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetListParameterSGIX(UInt32 list, int pname, [Out] int[] @params) {
			unsafe {
				fixed (int* fp_params = @params)
				{
					if      (Delegates.pglGetListParameterivSGIX != null)
						Delegates.pglGetListParameterivSGIX(list, pname, fp_params);
					else
						throw new InvalidOperationException("binding point GetListParameterSGIX cannot be found");
				}
			}
			LogProc("glGetListParameterivSGIX({0}, {1}, {2})", list, pname, @params);
		}

		/// <summary>
		/// Binding for glGetObjectParameterivAPPLE function.
		/// </summary>
		/// <param name="objectType">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="name">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.5
		public static void GetObjectParameterAPPLE(int objectType, UInt32 name, int pname, [Out] int[] @params) {
			unsafe {
				fixed (int* fp_params = @params)
				{
					if      (Delegates.pglGetObjectParameterivAPPLE != null)
						Delegates.pglGetObjectParameterivAPPLE(objectType, name, pname, fp_params);
					else
						throw new InvalidOperationException("binding point GetObjectParameterAPPLE cannot be found");
				}
			}
			LogProc("glGetObjectParameterivAPPLE({0}, {1}, {2}, {3})", objectType, name, pname, @params);
		}

		/// <summary>
		/// Binding for glGetObjectParameterivAPPLE function.
		/// </summary>
		/// <param name="objectType">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="name">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.5
		public static void GetObjectParameterAPPLE(int objectType, UInt32 name, int pname, out int @params) {
			unsafe {
				fixed (int* fp_params = &@params)
				{
					if      (Delegates.pglGetObjectParameterivAPPLE != null)
						Delegates.pglGetObjectParameterivAPPLE(objectType, name, pname, fp_params);
					else
						throw new InvalidOperationException("binding point GetObjectParameterAPPLE cannot be found");
				}
			}
			LogProc("glGetObjectParameterivAPPLE({0}, {1}, {2}, {3})", objectType, name, pname, @params);
		}
		
		/// <summary>
		/// Binding for glGetObjectParameterivAPPLE function.
		/// </summary>
		/// <param name="objectType">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="name">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.5
		public static void GetObjectParameterAPPLE(int objectType, UInt32 name, int pname, int* @params) {
			unsafe {
				if      (Delegates.pglGetObjectParameterivAPPLE != null)
					Delegates.pglGetObjectParameterivAPPLE(objectType, name, pname, @params);
				else
					throw new InvalidOperationException("binding point GetObjectParameterAPPLE cannot be found");
			}
			LogProc("glGetObjectParameterivAPPLE({0}, {1}, {2}, {3})", objectType, name, pname, "@params");
		}
		

		/// <summary>
		/// Binding for glGetPixelTexGenParameterfvSGIS function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetPixelTexGenParameterSGIS(int pname, [Out] float[] @params) {
			unsafe {
				fixed (float* fp_params = @params)
				{
					if      (Delegates.pglGetPixelTexGenParameterfvSGIS != null)
						Delegates.pglGetPixelTexGenParameterfvSGIS(pname, fp_params);
					else
						throw new InvalidOperationException("binding point GetPixelTexGenParameterSGIS cannot be found");
				}
			}
			LogProc("glGetPixelTexGenParameterfvSGIS({0}, {1})", pname, @params);
		}

		/// <summary>
		/// Binding for glGetPixelTexGenParameterivSGIS function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetPixelTexGenParameterSGIS(int pname, [Out] int[] @params) {
			unsafe {
				fixed (int* fp_params = @params)
				{
					if      (Delegates.pglGetPixelTexGenParameterivSGIS != null)
						Delegates.pglGetPixelTexGenParameterivSGIS(pname, fp_params);
					else
						throw new InvalidOperationException("binding point GetPixelTexGenParameterSGIS cannot be found");
				}
			}
			LogProc("glGetPixelTexGenParameterivSGIS({0}, {1})", pname, @params);
		}

		/// <summary>
		/// Binding for glGetSharpenTexFuncSGIS function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="points">
		/// A <see cref="T:System.Single*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetSharpenTexFuncSGIS(int target, [Out] float[] points) {
			unsafe {
				fixed (float* fp_points = points)
				{
					if      (Delegates.pglGetSharpenTexFuncSGIS != null)
						Delegates.pglGetSharpenTexFuncSGIS(target, fp_points);
					else
						throw new InvalidOperationException("binding point GetSharpenTexFuncSGIS cannot be found");
				}
			}
			LogProc("glGetSharpenTexFuncSGIS({0}, {1})", target, points);
		}

		/// <summary>
		/// Binding for glGetSharpenTexFuncSGIS function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="points">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetSharpenTexFuncSGIS(int target, float* points) {
			unsafe {
				if      (Delegates.pglGetSharpenTexFuncSGIS != null)
					Delegates.pglGetSharpenTexFuncSGIS(target, points);
				else
					throw new InvalidOperationException("binding point GetSharpenTexFuncSGIS cannot be found");
			}
			LogProc("glGetSharpenTexFuncSGIS({0}, {1})", target, "points");
		}
		

		/// <summary>
		/// Binding for glGetTexFilterFuncSGIS function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="filter">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="weights">
		/// A <see cref="T:System.Single*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetTexFilterFuncSGIS(int target, int filter, [Out] float[] weights) {
			unsafe {
				fixed (float* fp_weights = weights)
				{
					if      (Delegates.pglGetTexFilterFuncSGIS != null)
						Delegates.pglGetTexFilterFuncSGIS(target, filter, fp_weights);
					else
						throw new InvalidOperationException("binding point GetTexFilterFuncSGIS cannot be found");
				}
			}
			LogProc("glGetTexFilterFuncSGIS({0}, {1}, {2})", target, filter, weights);
		}

		/// <summary>
		/// Binding for glGetTexFilterFuncSGIS function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="filter">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="weights">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void GetTexFilterFuncSGIS(int target, int filter, float* weights) {
			unsafe {
				if      (Delegates.pglGetTexFilterFuncSGIS != null)
					Delegates.pglGetTexFilterFuncSGIS(target, filter, weights);
				else
					throw new InvalidOperationException("binding point GetTexFilterFuncSGIS cannot be found");
			}
			LogProc("glGetTexFilterFuncSGIS({0}, {1}, {2})", target, filter, "weights");
		}
		

		/// <summary>
		/// Binding for glGetTexParameterPointervAPPLE function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.IntPtr"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void GetTexParameterPointerAPPLE(int target, int pname, [Out] out IntPtr @params) {
			unsafe {
				fixed (IntPtr* fp_params = &@params)
				{
					if      (Delegates.pglGetTexParameterPointervAPPLE != null)
						Delegates.pglGetTexParameterPointervAPPLE(target, pname, fp_params);
					else
						throw new InvalidOperationException("binding point GetTexParameterPointerAPPLE cannot be found");
				}
			}
			LogProc("glGetTexParameterPointervAPPLE({0}, {1}, {2})", target, pname, @params);
		}

		/// <summary>
		/// Binding for glGlobalAlphaFactorbSUN function.
		/// </summary>
		/// <param name="factor">
		/// A <see cref="T:System.SByte"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void GlobalAlphaFactorSUN(sbyte factor) {
			if      (Delegates.pglGlobalAlphaFactorbSUN != null)
				Delegates.pglGlobalAlphaFactorbSUN(factor);
			else
				throw new InvalidOperationException("binding point GlobalAlphaFactorSUN cannot be found");
			LogProc("glGlobalAlphaFactorbSUN({0})", factor);
		}

		/// <summary>
		/// Binding for glGlobalAlphaFactordSUN function.
		/// </summary>
		/// <param name="factor">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void GlobalAlphaFactorSUN(double factor) {
			if      (Delegates.pglGlobalAlphaFactordSUN != null)
				Delegates.pglGlobalAlphaFactordSUN(factor);
			else
				throw new InvalidOperationException("binding point GlobalAlphaFactorSUN cannot be found");
			LogProc("glGlobalAlphaFactordSUN({0})", factor);
		}

		/// <summary>
		/// Binding for glGlobalAlphaFactorfSUN function.
		/// </summary>
		/// <param name="factor">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void GlobalAlphaFactorSUN(float factor) {
			if      (Delegates.pglGlobalAlphaFactorfSUN != null)
				Delegates.pglGlobalAlphaFactorfSUN(factor);
			else
				throw new InvalidOperationException("binding point GlobalAlphaFactorSUN cannot be found");
			LogProc("glGlobalAlphaFactorfSUN({0})", factor);
		}

		/// <summary>
		/// Binding for glGlobalAlphaFactoriSUN function.
		/// </summary>
		/// <param name="factor">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void GlobalAlphaFactorSUN(int factor) {
			if      (Delegates.pglGlobalAlphaFactoriSUN != null)
				Delegates.pglGlobalAlphaFactoriSUN(factor);
			else
				throw new InvalidOperationException("binding point GlobalAlphaFactorSUN cannot be found");
			LogProc("glGlobalAlphaFactoriSUN({0})", factor);
		}

		/// <summary>
		/// Binding for glGlobalAlphaFactorsSUN function.
		/// </summary>
		/// <param name="factor">
		/// A <see cref="T:System.Int16"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void GlobalAlphaFactorSUN(Int16 factor) {
			if      (Delegates.pglGlobalAlphaFactorsSUN != null)
				Delegates.pglGlobalAlphaFactorsSUN(factor);
			else
				throw new InvalidOperationException("binding point GlobalAlphaFactorSUN cannot be found");
			LogProc("glGlobalAlphaFactorsSUN({0})", factor);
		}

		/// <summary>
		/// Binding for glGlobalAlphaFactorubSUN function.
		/// </summary>
		/// <param name="factor">
		/// A <see cref="T:System.Byte"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void GlobalAlphaFactorubSUN(byte factor) {
			if      (Delegates.pglGlobalAlphaFactorubSUN != null)
				Delegates.pglGlobalAlphaFactorubSUN(factor);
			else
				throw new InvalidOperationException("binding point GlobalAlphaFactorubSUN cannot be found");
			LogProc("glGlobalAlphaFactorubSUN({0})", factor);
		}

		/// <summary>
		/// Binding for glGlobalAlphaFactoruiSUN function.
		/// </summary>
		/// <param name="factor">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void GlobalAlphaFactoruiSUN(UInt32 factor) {
			if      (Delegates.pglGlobalAlphaFactoruiSUN != null)
				Delegates.pglGlobalAlphaFactoruiSUN(factor);
			else
				throw new InvalidOperationException("binding point GlobalAlphaFactoruiSUN cannot be found");
			LogProc("glGlobalAlphaFactoruiSUN({0})", factor);
		}

		/// <summary>
		/// Binding for glGlobalAlphaFactorusSUN function.
		/// </summary>
		/// <param name="factor">
		/// A <see cref="T:System.UInt16"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void GlobalAlphaFactorusSUN(UInt16 factor) {
			if      (Delegates.pglGlobalAlphaFactorusSUN != null)
				Delegates.pglGlobalAlphaFactorusSUN(factor);
			else
				throw new InvalidOperationException("binding point GlobalAlphaFactorusSUN cannot be found");
			LogProc("glGlobalAlphaFactorusSUN({0})", factor);
		}

		/// <summary>
		/// Binding for glHintPGI function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="mode">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void HintPGI(int target, int mode) {
			if      (Delegates.pglHintPGI != null)
				Delegates.pglHintPGI(target, mode);
			else
				throw new InvalidOperationException("binding point HintPGI cannot be found");
			LogProc("glHintPGI({0}, {1})", target, mode);
		}

		/// <summary>
		/// Binding for glIglooInterfaceSGIX function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.IntPtr"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void IglooInterfaceSGIX(int pname, object @params) {
			GCHandle pp_params = GCHandle.Alloc(@params, GCHandleType.Pinned);
			try {
				if      (Delegates.pglIglooInterfaceSGIX != null)
					Delegates.pglIglooInterfaceSGIX(pname, pp_params.AddrOfPinnedObject());
				else
					throw new InvalidOperationException("binding point IglooInterfaceSGIX cannot be found");
			} finally {
				pp_params.Free();
			}
			LogProc("glIglooInterfaceSGIX({0}, {1})", pname, @params);
		}

		/// <summary>
		/// Binding for glImageTransformParameterfHP function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void ImageTransformParameterHP(int target, int pname, float param) {
			if      (Delegates.pglImageTransformParameterfHP != null)
				Delegates.pglImageTransformParameterfHP(target, pname, param);
			else
				throw new InvalidOperationException("binding point ImageTransformParameterHP cannot be found");
			LogProc("glImageTransformParameterfHP({0}, {1}, {2})", target, pname, param);
		}

		/// <summary>
		/// Binding for glImageTransformParameterfvHP function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void ImageTransformParameterHP(int target, int pname, float[] @params) {
			unsafe {
				fixed (float* fp_params = @params)
				{
					if      (Delegates.pglImageTransformParameterfvHP != null)
						Delegates.pglImageTransformParameterfvHP(target, pname, fp_params);
					else
						throw new InvalidOperationException("binding point ImageTransformParameterHP cannot be found");
				}
			}
			LogProc("glImageTransformParameterfvHP({0}, {1}, {2})", target, pname, @params);
		}

		/// <summary>
		/// Binding for glImageTransformParameterfvHP function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void ImageTransformParameterHP(int target, int pname, float* @params) {
			unsafe {
				if      (Delegates.pglImageTransformParameterfvHP != null)
					Delegates.pglImageTransformParameterfvHP(target, pname, @params);
				else
					throw new InvalidOperationException("binding point ImageTransformParameterHP cannot be found");
			}
			LogProc("glImageTransformParameterfvHP({0}, {1}, {2})", target, pname, "@params");
		}
		

		/// <summary>
		/// Binding for glImageTransformParameteriHP function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void ImageTransformParameterHP(int target, int pname, int param) {
			if      (Delegates.pglImageTransformParameteriHP != null)
				Delegates.pglImageTransformParameteriHP(target, pname, param);
			else
				throw new InvalidOperationException("binding point ImageTransformParameterHP cannot be found");
			LogProc("glImageTransformParameteriHP({0}, {1}, {2})", target, pname, param);
		}

		/// <summary>
		/// Binding for glImageTransformParameterivHP function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void ImageTransformParameterHP(int target, int pname, int[] @params) {
			unsafe {
				fixed (int* fp_params = @params)
				{
					if      (Delegates.pglImageTransformParameterivHP != null)
						Delegates.pglImageTransformParameterivHP(target, pname, fp_params);
					else
						throw new InvalidOperationException("binding point ImageTransformParameterHP cannot be found");
				}
			}
			LogProc("glImageTransformParameterivHP({0}, {1}, {2})", target, pname, @params);
		}

		/// <summary>
		/// Binding for glImageTransformParameterivHP function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void ImageTransformParameterHP(int target, int pname, int* @params) {
			unsafe {
				if      (Delegates.pglImageTransformParameterivHP != null)
					Delegates.pglImageTransformParameterivHP(target, pname, @params);
				else
					throw new InvalidOperationException("binding point ImageTransformParameterHP cannot be found");
			}
			LogProc("glImageTransformParameterivHP({0}, {1}, {2})", target, pname, "@params");
		}
		

		/// <summary>
		/// Binding for glInstrumentsBufferSGIX function.
		/// </summary>
		/// <param name="size">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:System.Int32*"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void InstrumentsBufferSGIX(Int32 size, [Out] int[] buffer) {
			unsafe {
				fixed (int* fp_buffer = buffer)
				{
					if      (Delegates.pglInstrumentsBufferSGIX != null)
						Delegates.pglInstrumentsBufferSGIX(size, fp_buffer);
					else
						throw new InvalidOperationException("binding point InstrumentsBufferSGIX cannot be found");
				}
			}
			LogProc("glInstrumentsBufferSGIX({0}, {1})", size, buffer);
		}

		/// <summary>
		/// Binding for glInstrumentsBufferSGIX function.
		/// </summary>
		/// <param name="size">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="buffer">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void InstrumentsBufferSGIX(Int32 size, int* buffer) {
			unsafe {
				if      (Delegates.pglInstrumentsBufferSGIX != null)
					Delegates.pglInstrumentsBufferSGIX(size, buffer);
				else
					throw new InvalidOperationException("binding point InstrumentsBufferSGIX cannot be found");
			}
			LogProc("glInstrumentsBufferSGIX({0}, {1})", size, "buffer");
		}
		

		/// <summary>
		/// Binding for glIsAsyncMarkerSGIX function.
		/// </summary>
		/// <param name="marker">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static bool IsAsyncMarkerSGIX(UInt32 marker) {
			bool retvalue;
			if      (Delegates.pglIsAsyncMarkerSGIX != null)
				retvalue = (Delegates.pglIsAsyncMarkerSGIX(marker));
			else
				throw new InvalidOperationException("binding point IsAsyncMarkerSGIX cannot be found");
			LogProc("glIsAsyncMarkerSGIX({0}) = {1}", marker, retvalue);
			return (retvalue);
		}

		/// <summary>
		/// Binding for glIsFenceAPPLE function.
		/// </summary>
		/// <param name="fence">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static bool IsFenceAPPLE(UInt32 fence) {
			bool retvalue;
			if      (Delegates.pglIsFenceAPPLE != null)
				retvalue = (Delegates.pglIsFenceAPPLE(fence));
			else
				throw new InvalidOperationException("binding point IsFenceAPPLE cannot be found");
			LogProc("glIsFenceAPPLE({0}) = {1}", fence, retvalue);
			return (retvalue);
		}

		/// <summary>
		/// Binding for glIsVertexArrayAPPLE function.
		/// </summary>
		/// <param name="array">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static bool IsVertexArrayAPPLE(UInt32 array) {
			bool retvalue;
			if      (Delegates.pglIsVertexArrayAPPLE != null)
				retvalue = (Delegates.pglIsVertexArrayAPPLE(array));
			else
				throw new InvalidOperationException("binding point IsVertexArrayAPPLE cannot be found");
			LogProc("glIsVertexArrayAPPLE({0}) = {1}", array, retvalue);
			return (retvalue);
		}

		/// <summary>
		/// Binding for glIsVertexAttribEnabledAPPLE function.
		/// </summary>
		/// <param name="index">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.5
		public static bool IsVertexAttribEnabledAPPLE(UInt32 index, int pname) {
			bool retvalue;
			if      (Delegates.pglIsVertexAttribEnabledAPPLE != null)
				retvalue = (Delegates.pglIsVertexAttribEnabledAPPLE(index, pname));
			else
				throw new InvalidOperationException("binding point IsVertexAttribEnabledAPPLE cannot be found");
			LogProc("glIsVertexAttribEnabledAPPLE({0}, {1}) = {2}", index, pname, retvalue);
			return (retvalue);
		}

		/// <summary>
		/// Binding for glLightEnviSGIX function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void LightEnvSGIX(int pname, int param) {
			if      (Delegates.pglLightEnviSGIX != null)
				Delegates.pglLightEnviSGIX(pname, param);
			else
				throw new InvalidOperationException("binding point LightEnvSGIX cannot be found");
			LogProc("glLightEnviSGIX({0}, {1})", pname, param);
		}

		/// <summary>
		/// Binding for glListParameterfSGIX function.
		/// </summary>
		/// <param name="list">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void ListParameterSGIX(UInt32 list, int pname, float param) {
			if      (Delegates.pglListParameterfSGIX != null)
				Delegates.pglListParameterfSGIX(list, pname, param);
			else
				throw new InvalidOperationException("binding point ListParameterSGIX cannot be found");
			LogProc("glListParameterfSGIX({0}, {1}, {2})", list, pname, param);
		}

		/// <summary>
		/// Binding for glListParameterfvSGIX function.
		/// </summary>
		/// <param name="list">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void ListParameterSGIX(UInt32 list, int pname, float[] @params) {
			unsafe {
				fixed (float* fp_params = @params)
				{
					if      (Delegates.pglListParameterfvSGIX != null)
						Delegates.pglListParameterfvSGIX(list, pname, fp_params);
					else
						throw new InvalidOperationException("binding point ListParameterSGIX cannot be found");
				}
			}
			LogProc("glListParameterfvSGIX({0}, {1}, {2})", list, pname, @params);
		}

		/// <summary>
		/// Binding for glListParameteriSGIX function.
		/// </summary>
		/// <param name="list">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void ListParameterSGIX(UInt32 list, int pname, int param) {
			if      (Delegates.pglListParameteriSGIX != null)
				Delegates.pglListParameteriSGIX(list, pname, param);
			else
				throw new InvalidOperationException("binding point ListParameterSGIX cannot be found");
			LogProc("glListParameteriSGIX({0}, {1}, {2})", list, pname, param);
		}

		/// <summary>
		/// Binding for glListParameterivSGIX function.
		/// </summary>
		/// <param name="list">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void ListParameterSGIX(UInt32 list, int pname, int[] @params) {
			unsafe {
				fixed (int* fp_params = @params)
				{
					if      (Delegates.pglListParameterivSGIX != null)
						Delegates.pglListParameterivSGIX(list, pname, fp_params);
					else
						throw new InvalidOperationException("binding point ListParameterSGIX cannot be found");
				}
			}
			LogProc("glListParameterivSGIX({0}, {1}, {2})", list, pname, @params);
		}

		/// <summary>
		/// Binding for glLoadIdentityDeformationMapSGIX function.
		/// </summary>
		/// <param name="mask">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void LoadIdentityDeformationMapSGIX(uint mask) {
			if      (Delegates.pglLoadIdentityDeformationMapSGIX != null)
				Delegates.pglLoadIdentityDeformationMapSGIX(mask);
			else
				throw new InvalidOperationException("binding point LoadIdentityDeformationMapSGIX cannot be found");
			LogProc("glLoadIdentityDeformationMapSGIX({0})", mask);
		}

		/// <summary>
		/// Binding for glMapVertexAttrib1dAPPLE function.
		/// </summary>
		/// <param name="index">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="u1">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="u2">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="order">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="points">
		/// A <see cref="T:System.Double*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.5
		public static void MapVertexAttrib1APPLE(UInt32 index, UInt32 size, double u1, double u2, int stride, int order, double[] points) {
			unsafe {
				fixed (double* fp_points = points)
				{
					if      (Delegates.pglMapVertexAttrib1dAPPLE != null)
						Delegates.pglMapVertexAttrib1dAPPLE(index, size, u1, u2, stride, order, fp_points);
					else
						throw new InvalidOperationException("binding point MapVertexAttrib1APPLE cannot be found");
				}
			}
			LogProc("glMapVertexAttrib1dAPPLE({0}, {1}, {2}, {3}, {4}, {5}, {6})", index, size, u1, u2, stride, order, points);
		}

		/// <summary>
		/// Binding for glMapVertexAttrib1fAPPLE function.
		/// </summary>
		/// <param name="index">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="u1">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="u2">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="order">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="points">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.5
		public static void MapVertexAttrib1APPLE(UInt32 index, UInt32 size, float u1, float u2, int stride, int order, float[] points) {
			unsafe {
				fixed (float* fp_points = points)
				{
					if      (Delegates.pglMapVertexAttrib1fAPPLE != null)
						Delegates.pglMapVertexAttrib1fAPPLE(index, size, u1, u2, stride, order, fp_points);
					else
						throw new InvalidOperationException("binding point MapVertexAttrib1APPLE cannot be found");
				}
			}
			LogProc("glMapVertexAttrib1fAPPLE({0}, {1}, {2}, {3}, {4}, {5}, {6})", index, size, u1, u2, stride, order, points);
		}

		/// <summary>
		/// Binding for glMapVertexAttrib2dAPPLE function.
		/// </summary>
		/// <param name="index">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="u1">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="u2">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="ustride">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="uorder">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="v1">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="v2">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="vstride">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="vorder">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="points">
		/// A <see cref="T:System.Double*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.5
		public static void MapVertexAttrib2APPLE(UInt32 index, UInt32 size, double u1, double u2, int ustride, int uorder, double v1, double v2, int vstride, int vorder, double[] points) {
			unsafe {
				fixed (double* fp_points = points)
				{
					if      (Delegates.pglMapVertexAttrib2dAPPLE != null)
						Delegates.pglMapVertexAttrib2dAPPLE(index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, fp_points);
					else
						throw new InvalidOperationException("binding point MapVertexAttrib2APPLE cannot be found");
				}
			}
			LogProc("glMapVertexAttrib2dAPPLE({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10})", index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
		}

		/// <summary>
		/// Binding for glMapVertexAttrib2fAPPLE function.
		/// </summary>
		/// <param name="index">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="size">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="u1">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="u2">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="ustride">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="uorder">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="v1">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="v2">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="vstride">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="vorder">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="points">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.5
		public static void MapVertexAttrib2APPLE(UInt32 index, UInt32 size, float u1, float u2, int ustride, int uorder, float v1, float v2, int vstride, int vorder, float[] points) {
			unsafe {
				fixed (float* fp_points = points)
				{
					if      (Delegates.pglMapVertexAttrib2fAPPLE != null)
						Delegates.pglMapVertexAttrib2fAPPLE(index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, fp_points);
					else
						throw new InvalidOperationException("binding point MapVertexAttrib2APPLE cannot be found");
				}
			}
			LogProc("glMapVertexAttrib2fAPPLE({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10})", index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
		}

		/// <summary>
		/// Binding for glMultiDrawElementArrayAPPLE function.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="first">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// <param name="count">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// <param name="primcount">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void MultiDrawElementArrayAPPLE(int mode, int[] first, Int32[] count, Int32 primcount) {
			unsafe {
				fixed (int* fp_first = first)
				fixed (Int32* fp_count = count)
				{
					if      (Delegates.pglMultiDrawElementArrayAPPLE != null)
						Delegates.pglMultiDrawElementArrayAPPLE(mode, fp_first, fp_count, primcount);
					else
						throw new InvalidOperationException("binding point MultiDrawElementArrayAPPLE cannot be found");
				}
			}
			LogProc("glMultiDrawElementArrayAPPLE({0}, {1}, {2}, {3})", mode, first, count, primcount);
		}

		/// <summary>
		/// Binding for glMultiDrawElementArrayAPPLE function.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="first">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="count">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// <param name="primcount">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void MultiDrawElementArrayAPPLE(int mode, int* first, Int32[] count, Int32 primcount) {
			unsafe {
				fixed (Int32* fp_count = count)
				{
					if      (Delegates.pglMultiDrawElementArrayAPPLE != null)
						Delegates.pglMultiDrawElementArrayAPPLE(mode, first, fp_count, primcount);
					else
						throw new InvalidOperationException("binding point MultiDrawElementArrayAPPLE cannot be found");
				}
			}
			LogProc("glMultiDrawElementArrayAPPLE({0}, {1}, {2}, {3})", mode, "first", count, primcount);
		}
		

		/// <summary>
		/// Binding for glMultiDrawRangeElementArrayAPPLE function.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="start">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="end">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="first">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// <param name="count">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// <param name="primcount">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void MultiDrawRangeElementArrayAPPLE(int mode, UInt32 start, UInt32 end, int[] first, Int32[] count, Int32 primcount) {
			unsafe {
				fixed (int* fp_first = first)
				fixed (Int32* fp_count = count)
				{
					if      (Delegates.pglMultiDrawRangeElementArrayAPPLE != null)
						Delegates.pglMultiDrawRangeElementArrayAPPLE(mode, start, end, fp_first, fp_count, primcount);
					else
						throw new InvalidOperationException("binding point MultiDrawRangeElementArrayAPPLE cannot be found");
				}
			}
			LogProc("glMultiDrawRangeElementArrayAPPLE({0}, {1}, {2}, {3}, {4}, {5})", mode, start, end, first, count, primcount);
		}

		/// <summary>
		/// Binding for glMultiDrawRangeElementArrayAPPLE function.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="start">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="end">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="first">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="count">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// <param name="primcount">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void MultiDrawRangeElementArrayAPPLE(int mode, UInt32 start, UInt32 end, int* first, Int32[] count, Int32 primcount) {
			unsafe {
				fixed (Int32* fp_count = count)
				{
					if      (Delegates.pglMultiDrawRangeElementArrayAPPLE != null)
						Delegates.pglMultiDrawRangeElementArrayAPPLE(mode, start, end, first, fp_count, primcount);
					else
						throw new InvalidOperationException("binding point MultiDrawRangeElementArrayAPPLE cannot be found");
				}
			}
			LogProc("glMultiDrawRangeElementArrayAPPLE({0}, {1}, {2}, {3}, {4}, {5})", mode, start, end, "first", count, primcount);
		}
		

		/// <summary>
		/// Binding for glMultiModeDrawArraysIBM function.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// <param name="first">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// <param name="count">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// <param name="primcount">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="modestride">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void MultiModeDrawArraysIBM(int[] mode, int[] first, Int32[] count, Int32 primcount, int modestride) {
			unsafe {
				fixed (int* fp_mode = mode)
				fixed (int* fp_first = first)
				fixed (Int32* fp_count = count)
				{
					if      (Delegates.pglMultiModeDrawArraysIBM != null)
						Delegates.pglMultiModeDrawArraysIBM(fp_mode, fp_first, fp_count, primcount, modestride);
					else
						throw new InvalidOperationException("binding point MultiModeDrawArraysIBM cannot be found");
				}
			}
			LogProc("glMultiModeDrawArraysIBM({0}, {1}, {2}, {3}, {4})", mode, first, count, primcount, modestride);
		}

		/// <summary>
		/// Binding for glMultiModeDrawArraysIBM function.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// <param name="first">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="count">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// <param name="primcount">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="modestride">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void MultiModeDrawArraysIBM(int[] mode, int* first, Int32[] count, Int32 primcount, int modestride) {
			unsafe {
				fixed (int* fp_mode = mode)
				fixed (Int32* fp_count = count)
				{
					if      (Delegates.pglMultiModeDrawArraysIBM != null)
						Delegates.pglMultiModeDrawArraysIBM(fp_mode, first, fp_count, primcount, modestride);
					else
						throw new InvalidOperationException("binding point MultiModeDrawArraysIBM cannot be found");
				}
			}
			LogProc("glMultiModeDrawArraysIBM({0}, {1}, {2}, {3}, {4})", mode, "first", count, primcount, modestride);
		}
		

		/// <summary>
		/// Binding for glMultiModeDrawElementsIBM function.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// <param name="count">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="indices">
		/// A <see cref="T:System.IntPtr*"/>.
		/// </param>
		/// <param name="primcount">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="modestride">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void MultiModeDrawElementsIBM(int[] mode, Int32[] count, int type, IntPtr[] indices, Int32 primcount, int modestride) {
			unsafe {
				fixed (int* fp_mode = mode)
				fixed (Int32* fp_count = count)
				fixed (IntPtr* fp_indices = indices)
				{
					if      (Delegates.pglMultiModeDrawElementsIBM != null)
						Delegates.pglMultiModeDrawElementsIBM(fp_mode, fp_count, type, fp_indices, primcount, modestride);
					else
						throw new InvalidOperationException("binding point MultiModeDrawElementsIBM cannot be found");
				}
			}
			LogProc("glMultiModeDrawElementsIBM({0}, {1}, {2}, {3}, {4}, {5})", mode, count, type, indices, primcount, modestride);
		}

		/// <summary>
		/// Binding for glNormalPointervINTEL function.
		/// </summary>
		/// <param name="type">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pointer">
		/// A <see cref="T:System.IntPtr*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void NormalPointerINTEL(int type, IntPtr[] pointer) {
			unsafe {
				fixed (IntPtr* fp_pointer = pointer)
				{
					if      (Delegates.pglNormalPointervINTEL != null)
						Delegates.pglNormalPointervINTEL(type, fp_pointer);
					else
						throw new InvalidOperationException("binding point NormalPointerINTEL cannot be found");
				}
			}
			LogProc("glNormalPointervINTEL({0}, {1})", type, pointer);
		}

		/// <summary>
		/// Binding for glObjectPurgeableAPPLE function.
		/// </summary>
		/// <param name="objectType">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="name">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="option">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.5
		public static int ObjectPurgeableAPPLE(int objectType, UInt32 name, int option) {
			int retvalue;
			if      (Delegates.pglObjectPurgeableAPPLE != null)
				retvalue = (Delegates.pglObjectPurgeableAPPLE(objectType, name, option));
			else
				throw new InvalidOperationException("binding point ObjectPurgeableAPPLE cannot be found");
			LogProc("glObjectPurgeableAPPLE({0}, {1}, {2}) = {3}", objectType, name, option, retvalue);
			return (retvalue);
		}

		/// <summary>
		/// Binding for glObjectUnpurgeableAPPLE function.
		/// </summary>
		/// <param name="objectType">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="name">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// <param name="option">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.5
		public static int ObjectUnpurgeableAPPLE(int objectType, UInt32 name, int option) {
			int retvalue;
			if      (Delegates.pglObjectUnpurgeableAPPLE != null)
				retvalue = (Delegates.pglObjectUnpurgeableAPPLE(objectType, name, option));
			else
				throw new InvalidOperationException("binding point ObjectUnpurgeableAPPLE cannot be found");
			LogProc("glObjectUnpurgeableAPPLE({0}, {1}, {2}) = {3}", objectType, name, option, retvalue);
			return (retvalue);
		}

		/// <summary>
		/// Binding for glPixelTexGenParameterfSGIS function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void PixelTexGenParameterSGIS(int pname, float param) {
			if      (Delegates.pglPixelTexGenParameterfSGIS != null)
				Delegates.pglPixelTexGenParameterfSGIS(pname, param);
			else
				throw new InvalidOperationException("binding point PixelTexGenParameterSGIS cannot be found");
			LogProc("glPixelTexGenParameterfSGIS({0}, {1})", pname, param);
		}

		/// <summary>
		/// Binding for glPixelTexGenParameterfvSGIS function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void PixelTexGenParameterSGIS(int pname, float[] @params) {
			unsafe {
				fixed (float* fp_params = @params)
				{
					if      (Delegates.pglPixelTexGenParameterfvSGIS != null)
						Delegates.pglPixelTexGenParameterfvSGIS(pname, fp_params);
					else
						throw new InvalidOperationException("binding point PixelTexGenParameterSGIS cannot be found");
				}
			}
			LogProc("glPixelTexGenParameterfvSGIS({0}, {1})", pname, @params);
		}

		/// <summary>
		/// Binding for glPixelTexGenParameteriSGIS function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void PixelTexGenParameterSGIS(int pname, int param) {
			if      (Delegates.pglPixelTexGenParameteriSGIS != null)
				Delegates.pglPixelTexGenParameteriSGIS(pname, param);
			else
				throw new InvalidOperationException("binding point PixelTexGenParameterSGIS cannot be found");
			LogProc("glPixelTexGenParameteriSGIS({0}, {1})", pname, param);
		}

		/// <summary>
		/// Binding for glPixelTexGenParameterivSGIS function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void PixelTexGenParameterSGIS(int pname, int[] @params) {
			unsafe {
				fixed (int* fp_params = @params)
				{
					if      (Delegates.pglPixelTexGenParameterivSGIS != null)
						Delegates.pglPixelTexGenParameterivSGIS(pname, fp_params);
					else
						throw new InvalidOperationException("binding point PixelTexGenParameterSGIS cannot be found");
				}
			}
			LogProc("glPixelTexGenParameterivSGIS({0}, {1})", pname, @params);
		}

		/// <summary>
		/// Binding for glPixelTexGenSGIX function.
		/// </summary>
		/// <param name="mode">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void PixelTexGenSGIX(int mode) {
			if      (Delegates.pglPixelTexGenSGIX != null)
				Delegates.pglPixelTexGenSGIX(mode);
			else
				throw new InvalidOperationException("binding point PixelTexGenSGIX cannot be found");
			LogProc("glPixelTexGenSGIX({0})", mode);
		}

		/// <summary>
		/// Binding for glPointParameterfSGIS function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void PointParameterSGIS(int pname, float param) {
			if      (Delegates.pglPointParameterfSGIS != null)
				Delegates.pglPointParameterfSGIS(pname, param);
			else
				throw new InvalidOperationException("binding point PointParameterSGIS cannot be found");
			LogProc("glPointParameterfSGIS({0}, {1})", pname, param);
		}

		/// <summary>
		/// Binding for glPointParameterfvSGIS function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void PointParameterSGIS(int pname, float[] @params) {
			unsafe {
				fixed (float* fp_params = @params)
				{
					if      (Delegates.pglPointParameterfvSGIS != null)
						Delegates.pglPointParameterfvSGIS(pname, fp_params);
					else
						throw new InvalidOperationException("binding point PointParameterSGIS cannot be found");
				}
			}
			LogProc("glPointParameterfvSGIS({0}, {1})", pname, @params);
		}

		/// <summary>
		/// Binding for glPollAsyncSGIX function.
		/// </summary>
		/// <param name="markerp">
		/// A <see cref="T:System.UInt32"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static int PollAsyncSGIX([Out] out UInt32 markerp) {
			int retvalue;
			unsafe {
				fixed (UInt32* fp_markerp = &markerp)
				{
					if      (Delegates.pglPollAsyncSGIX != null)
						retvalue = (Delegates.pglPollAsyncSGIX(fp_markerp));
					else
						throw new InvalidOperationException("binding point PollAsyncSGIX cannot be found");
				}
			}
			LogProc("glPollAsyncSGIX({0}) = {1}", markerp, retvalue);
			return (retvalue);
		}

		/// <summary>
		/// Binding for glPollInstrumentsSGIX function.
		/// </summary>
		/// <param name="marker_p">
		/// A <see cref="T:System.Int32"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static int PollInstrumentsSGIX([Out] out int marker_p) {
			int retvalue;
			unsafe {
				fixed (int* fp_marker_p = &marker_p)
				{
					if      (Delegates.pglPollInstrumentsSGIX != null)
						retvalue = (Delegates.pglPollInstrumentsSGIX(fp_marker_p));
					else
						throw new InvalidOperationException("binding point PollInstrumentsSGIX cannot be found");
				}
			}
			LogProc("glPollInstrumentsSGIX({0}) = {1}", marker_p, retvalue);
			return (retvalue);
		}

		/// <summary>
		/// Binding for glReadInstrumentsSGIX function.
		/// </summary>
		/// <param name="marker">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void ReadInstrumentsSGIX(int marker) {
			if      (Delegates.pglReadInstrumentsSGIX != null)
				Delegates.pglReadInstrumentsSGIX(marker);
			else
				throw new InvalidOperationException("binding point ReadInstrumentsSGIX cannot be found");
			LogProc("glReadInstrumentsSGIX({0})", marker);
		}

		/// <summary>
		/// Binding for glReferencePlaneSGIX function.
		/// </summary>
		/// <param name="equation">
		/// A <see cref="T:System.Double*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void ReferencePlaneSGIX(double[] equation) {
			unsafe {
				fixed (double* fp_equation = equation)
				{
					if      (Delegates.pglReferencePlaneSGIX != null)
						Delegates.pglReferencePlaneSGIX(fp_equation);
					else
						throw new InvalidOperationException("binding point ReferencePlaneSGIX cannot be found");
				}
			}
			LogProc("glReferencePlaneSGIX({0})", equation);
		}

		/// <summary>
		/// Binding for glReferencePlaneSGIX function.
		/// </summary>
		/// <param name="equation">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void ReferencePlaneSGIX(double* equation) {
			unsafe {
				if      (Delegates.pglReferencePlaneSGIX != null)
					Delegates.pglReferencePlaneSGIX(equation);
				else
					throw new InvalidOperationException("binding point ReferencePlaneSGIX cannot be found");
			}
			LogProc("glReferencePlaneSGIX({0})", "equation");
		}
		

		/// <summary>
		/// Binding for glReplacementCodePointerSUN function.
		/// </summary>
		/// <param name="type">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="stride">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pointer">
		/// A <see cref="T:System.IntPtr*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void ReplacementCodePointerSUN(int type, Int32 stride, IntPtr[] pointer) {
			unsafe {
				fixed (IntPtr* fp_pointer = pointer)
				{
					if      (Delegates.pglReplacementCodePointerSUN != null)
						Delegates.pglReplacementCodePointerSUN(type, stride, fp_pointer);
					else
						throw new InvalidOperationException("binding point ReplacementCodePointerSUN cannot be found");
				}
			}
			LogProc("glReplacementCodePointerSUN({0}, {1}, {2})", type, stride, pointer);
		}

		/// <summary>
		/// Binding for glReplacementCodeubSUN function.
		/// </summary>
		/// <param name="code">
		/// A <see cref="T:System.Byte"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void ReplacementCodeubSUN(byte code) {
			if      (Delegates.pglReplacementCodeubSUN != null)
				Delegates.pglReplacementCodeubSUN(code);
			else
				throw new InvalidOperationException("binding point ReplacementCodeubSUN cannot be found");
			LogProc("glReplacementCodeubSUN({0})", code);
		}

		/// <summary>
		/// Binding for glReplacementCodeubvSUN function.
		/// </summary>
		/// <param name="code">
		/// A <see cref="T:System.Byte*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void ReplacementCodeubSUN(byte[] code) {
			unsafe {
				fixed (byte* fp_code = code)
				{
					if      (Delegates.pglReplacementCodeubvSUN != null)
						Delegates.pglReplacementCodeubvSUN(fp_code);
					else
						throw new InvalidOperationException("binding point ReplacementCodeubSUN cannot be found");
				}
			}
			LogProc("glReplacementCodeubvSUN({0})", code);
		}

		/// <summary>
		/// Binding for glReplacementCodeuiSUN function.
		/// </summary>
		/// <param name="code">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void ReplacementCodeuiSUN(UInt32 code) {
			if      (Delegates.pglReplacementCodeuiSUN != null)
				Delegates.pglReplacementCodeuiSUN(code);
			else
				throw new InvalidOperationException("binding point ReplacementCodeuiSUN cannot be found");
			LogProc("glReplacementCodeuiSUN({0})", code);
		}

		/// <summary>
		/// Binding for glReplacementCodeuivSUN function.
		/// </summary>
		/// <param name="code">
		/// A <see cref="T:System.UInt32*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void ReplacementCodeuiSUN(UInt32[] code) {
			unsafe {
				fixed (UInt32* fp_code = code)
				{
					if      (Delegates.pglReplacementCodeuivSUN != null)
						Delegates.pglReplacementCodeuivSUN(fp_code);
					else
						throw new InvalidOperationException("binding point ReplacementCodeuiSUN cannot be found");
				}
			}
			LogProc("glReplacementCodeuivSUN({0})", code);
		}

		/// <summary>
		/// Binding for glReplacementCodeuivSUN function.
		/// </summary>
		/// <param name="code">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void ReplacementCodeuiSUN(UInt32* code) {
			unsafe {
				if      (Delegates.pglReplacementCodeuivSUN != null)
					Delegates.pglReplacementCodeuivSUN(code);
				else
					throw new InvalidOperationException("binding point ReplacementCodeuiSUN cannot be found");
			}
			LogProc("glReplacementCodeuivSUN({0})", "code");
		}
		

		/// <summary>
		/// Binding for glReplacementCodeusSUN function.
		/// </summary>
		/// <param name="code">
		/// A <see cref="T:System.UInt16"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void ReplacementCodeusSUN(UInt16 code) {
			if      (Delegates.pglReplacementCodeusSUN != null)
				Delegates.pglReplacementCodeusSUN(code);
			else
				throw new InvalidOperationException("binding point ReplacementCodeusSUN cannot be found");
			LogProc("glReplacementCodeusSUN({0})", code);
		}

		/// <summary>
		/// Binding for glReplacementCodeusvSUN function.
		/// </summary>
		/// <param name="code">
		/// A <see cref="T:System.UInt16*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void ReplacementCodeusSUN(UInt16[] code) {
			unsafe {
				fixed (UInt16* fp_code = code)
				{
					if      (Delegates.pglReplacementCodeusvSUN != null)
						Delegates.pglReplacementCodeusvSUN(fp_code);
					else
						throw new InvalidOperationException("binding point ReplacementCodeusSUN cannot be found");
				}
			}
			LogProc("glReplacementCodeusvSUN({0})", code);
		}

		/// <summary>
		/// Binding for glResizeBuffersMESA function.
		/// </summary>
		/// @note This routine is available from OpenGL 1.0
		public static void ResizeBuffersMESA() {
			if      (Delegates.pglResizeBuffersMESA != null)
				Delegates.pglResizeBuffersMESA();
			else
				throw new InvalidOperationException("binding point ResizeBuffersMESA cannot be found");
			LogProc("glResizeBuffersMESA()");
		}

		/// <summary>
		/// Binding for glSampleMaskSGIS function.
		/// </summary>
		/// <param name="value">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="invert">
		/// A <see cref="T:System.Boolean"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void SampleMaskSGIS(float value, bool invert) {
			if      (Delegates.pglSampleMaskSGIS != null)
				Delegates.pglSampleMaskSGIS(value, invert);
			else
				throw new InvalidOperationException("binding point SampleMaskSGIS cannot be found");
			LogProc("glSampleMaskSGIS({0}, {1})", value, invert);
		}

		/// <summary>
		/// Binding for glSamplePatternSGIS function.
		/// </summary>
		/// <param name="pattern">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void SamplePatternSGIS(int pattern) {
			if      (Delegates.pglSamplePatternSGIS != null)
				Delegates.pglSamplePatternSGIS(pattern);
			else
				throw new InvalidOperationException("binding point SamplePatternSGIS cannot be found");
			LogProc("glSamplePatternSGIS({0})", pattern);
		}

		/// <summary>
		/// Binding for glSetFenceAPPLE function.
		/// </summary>
		/// <param name="fence">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void SetFenceAPPLE(UInt32 fence) {
			if      (Delegates.pglSetFenceAPPLE != null)
				Delegates.pglSetFenceAPPLE(fence);
			else
				throw new InvalidOperationException("binding point SetFenceAPPLE cannot be found");
			LogProc("glSetFenceAPPLE({0})", fence);
		}

		/// <summary>
		/// Binding for glSharpenTexFuncSGIS function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="n">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="points">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void SharpenTexFuncSGIS(int target, Int32 n, float[] points) {
			unsafe {
				fixed (float* fp_points = points)
				{
					if      (Delegates.pglSharpenTexFuncSGIS != null)
						Delegates.pglSharpenTexFuncSGIS(target, n, fp_points);
					else
						throw new InvalidOperationException("binding point SharpenTexFuncSGIS cannot be found");
				}
			}
			LogProc("glSharpenTexFuncSGIS({0}, {1}, {2})", target, n, points);
		}

		/// <summary>
		/// Binding for glSharpenTexFuncSGIS function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="n">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="points">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void SharpenTexFuncSGIS(int target, Int32 n, float* points) {
			unsafe {
				if      (Delegates.pglSharpenTexFuncSGIS != null)
					Delegates.pglSharpenTexFuncSGIS(target, n, points);
				else
					throw new InvalidOperationException("binding point SharpenTexFuncSGIS cannot be found");
			}
			LogProc("glSharpenTexFuncSGIS({0}, {1}, {2})", target, n, "points");
		}
		

		/// <summary>
		/// Binding for glSpriteParameterfSGIX function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void SpriteParameterSGIX(int pname, float param) {
			if      (Delegates.pglSpriteParameterfSGIX != null)
				Delegates.pglSpriteParameterfSGIX(pname, param);
			else
				throw new InvalidOperationException("binding point SpriteParameterSGIX cannot be found");
			LogProc("glSpriteParameterfSGIX({0}, {1})", pname, param);
		}

		/// <summary>
		/// Binding for glSpriteParameterfvSGIX function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void SpriteParameterSGIX(int pname, float[] @params) {
			unsafe {
				fixed (float* fp_params = @params)
				{
					if      (Delegates.pglSpriteParameterfvSGIX != null)
						Delegates.pglSpriteParameterfvSGIX(pname, fp_params);
					else
						throw new InvalidOperationException("binding point SpriteParameterSGIX cannot be found");
				}
			}
			LogProc("glSpriteParameterfvSGIX({0}, {1})", pname, @params);
		}

		/// <summary>
		/// Binding for glSpriteParameteriSGIX function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void SpriteParameterSGIX(int pname, int param) {
			if      (Delegates.pglSpriteParameteriSGIX != null)
				Delegates.pglSpriteParameteriSGIX(pname, param);
			else
				throw new InvalidOperationException("binding point SpriteParameterSGIX cannot be found");
			LogProc("glSpriteParameteriSGIX({0}, {1})", pname, param);
		}

		/// <summary>
		/// Binding for glSpriteParameterivSGIX function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="params">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void SpriteParameterSGIX(int pname, int[] @params) {
			unsafe {
				fixed (int* fp_params = @params)
				{
					if      (Delegates.pglSpriteParameterivSGIX != null)
						Delegates.pglSpriteParameterivSGIX(pname, fp_params);
					else
						throw new InvalidOperationException("binding point SpriteParameterSGIX cannot be found");
				}
			}
			LogProc("glSpriteParameterivSGIX({0}, {1})", pname, @params);
		}

		/// <summary>
		/// Binding for glStartInstrumentsSGIX function.
		/// </summary>
		/// @note This routine is available from OpenGL 1.0
		public static void StartInstrumentsSGIX() {
			if      (Delegates.pglStartInstrumentsSGIX != null)
				Delegates.pglStartInstrumentsSGIX();
			else
				throw new InvalidOperationException("binding point StartInstrumentsSGIX cannot be found");
			LogProc("glStartInstrumentsSGIX()");
		}

		/// <summary>
		/// Binding for glStopInstrumentsSGIX function.
		/// </summary>
		/// <param name="marker">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void StopInstrumentsSGIX(int marker) {
			if      (Delegates.pglStopInstrumentsSGIX != null)
				Delegates.pglStopInstrumentsSGIX(marker);
			else
				throw new InvalidOperationException("binding point StopInstrumentsSGIX cannot be found");
			LogProc("glStopInstrumentsSGIX({0})", marker);
		}

		/// <summary>
		/// Binding for glStringMarkerGREMEDY function.
		/// </summary>
		/// <param name="len">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="string">
		/// A <see cref="T:System.IntPtr"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void StringMarkerGREMEDY(Int32 len, object @string) {
			GCHandle pp_string = GCHandle.Alloc(@string, GCHandleType.Pinned);
			try {
				if      (Delegates.pglStringMarkerGREMEDY != null)
					Delegates.pglStringMarkerGREMEDY(len, pp_string.AddrOfPinnedObject());
				else
					throw new InvalidOperationException("binding point StringMarkerGREMEDY cannot be found");
			} finally {
				pp_string.Free();
			}
			LogProc("glStringMarkerGREMEDY({0}, {1})", len, @string);
		}

		/// <summary>
		/// Binding for glTagSampleBufferSGIX function.
		/// </summary>
		/// @note This routine is available from OpenGL 1.0
		public static void TagSampleBufferSGIX() {
			if      (Delegates.pglTagSampleBufferSGIX != null)
				Delegates.pglTagSampleBufferSGIX();
			else
				throw new InvalidOperationException("binding point TagSampleBufferSGIX cannot be found");
			LogProc("glTagSampleBufferSGIX()");
		}

		/// <summary>
		/// Binding for glTbufferMask3DFX function.
		/// </summary>
		/// <param name="mask">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void TbufferMask3DFX(UInt32 mask) {
			if      (Delegates.pglTbufferMask3DFX != null)
				Delegates.pglTbufferMask3DFX(mask);
			else
				throw new InvalidOperationException("binding point TbufferMask3DFX cannot be found");
			LogProc("glTbufferMask3DFX({0})", mask);
		}

		/// <summary>
		/// Binding for glTestFenceAPPLE function.
		/// </summary>
		/// <param name="fence">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static bool TestFenceAPPLE(UInt32 fence) {
			bool retvalue;
			if      (Delegates.pglTestFenceAPPLE != null)
				retvalue = (Delegates.pglTestFenceAPPLE(fence));
			else
				throw new InvalidOperationException("binding point TestFenceAPPLE cannot be found");
			LogProc("glTestFenceAPPLE({0}) = {1}", fence, retvalue);
			return (retvalue);
		}

		/// <summary>
		/// Binding for glTestObjectAPPLE function.
		/// </summary>
		/// <param name="object">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="name">
		/// A <see cref="T:System.UInt32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static bool TestObjectAPPLE(int @object, UInt32 name) {
			bool retvalue;
			if      (Delegates.pglTestObjectAPPLE != null)
				retvalue = (Delegates.pglTestObjectAPPLE(@object, name));
			else
				throw new InvalidOperationException("binding point TestObjectAPPLE cannot be found");
			LogProc("glTestObjectAPPLE({0}, {1}) = {2}", @object, name, retvalue);
			return (retvalue);
		}

		/// <summary>
		/// Binding for glTexCoordPointervINTEL function.
		/// </summary>
		/// <param name="size">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pointer">
		/// A <see cref="T:System.IntPtr*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void TexCoordPointerINTEL(int size, int type, IntPtr[] pointer) {
			unsafe {
				fixed (IntPtr* fp_pointer = pointer)
				{
					if      (Delegates.pglTexCoordPointervINTEL != null)
						Delegates.pglTexCoordPointervINTEL(size, type, fp_pointer);
					else
						throw new InvalidOperationException("binding point TexCoordPointerINTEL cannot be found");
				}
			}
			LogProc("glTexCoordPointervINTEL({0}, {1}, {2})", size, type, pointer);
		}

		/// <summary>
		/// Binding for glTexFilterFuncSGIS function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="filter">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="n">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="weights">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void TexFilterFuncSGIS(int target, int filter, Int32 n, float[] weights) {
			unsafe {
				fixed (float* fp_weights = weights)
				{
					if      (Delegates.pglTexFilterFuncSGIS != null)
						Delegates.pglTexFilterFuncSGIS(target, filter, n, fp_weights);
					else
						throw new InvalidOperationException("binding point TexFilterFuncSGIS cannot be found");
				}
			}
			LogProc("glTexFilterFuncSGIS({0}, {1}, {2}, {3})", target, filter, n, weights);
		}

		/// <summary>
		/// Binding for glTexFilterFuncSGIS function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="filter">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="n">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="weights">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void TexFilterFuncSGIS(int target, int filter, Int32 n, float* weights) {
			unsafe {
				if      (Delegates.pglTexFilterFuncSGIS != null)
					Delegates.pglTexFilterFuncSGIS(target, filter, n, weights);
				else
					throw new InvalidOperationException("binding point TexFilterFuncSGIS cannot be found");
			}
			LogProc("glTexFilterFuncSGIS({0}, {1}, {2}, {3})", target, filter, n, "weights");
		}
		

		/// <summary>
		/// Binding for glTexImage4DSGIS function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="internalformat">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="size4d">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="border">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:System.IntPtr"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void TexImage4DSGIS(int target, int level, int internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, int border, int format, int type, object pixels) {
			GCHandle pp_pixels = GCHandle.Alloc(pixels, GCHandleType.Pinned);
			try {
				if      (Delegates.pglTexImage4DSGIS != null)
					Delegates.pglTexImage4DSGIS(target, level, internalformat, width, height, depth, size4d, border, format, type, pp_pixels.AddrOfPinnedObject());
				else
					throw new InvalidOperationException("binding point TexImage4DSGIS cannot be found");
			} finally {
				pp_pixels.Free();
			}
			LogProc("glTexImage4DSGIS({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10})", target, level, internalformat, width, height, depth, size4d, border, format, type, pixels);
		}

		/// <summary>
		/// Binding for glTexSubImage4DSGIS function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="level">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="xoffset">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="yoffset">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="zoffset">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="woffset">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="width">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="height">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="depth">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="size4d">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="format">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pixels">
		/// A <see cref="T:System.IntPtr"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void TexSubImage4DSGIS(int target, int level, int xoffset, int yoffset, int zoffset, int woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, int format, int type, object pixels) {
			GCHandle pp_pixels = GCHandle.Alloc(pixels, GCHandleType.Pinned);
			try {
				if      (Delegates.pglTexSubImage4DSGIS != null)
					Delegates.pglTexSubImage4DSGIS(target, level, xoffset, yoffset, zoffset, woffset, width, height, depth, size4d, format, type, pp_pixels.AddrOfPinnedObject());
				else
					throw new InvalidOperationException("binding point TexSubImage4DSGIS cannot be found");
			} finally {
				pp_pixels.Free();
			}
			LogProc("glTexSubImage4DSGIS({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}, {12})", target, level, xoffset, yoffset, zoffset, woffset, width, height, depth, size4d, format, type, pixels);
		}

		/// <summary>
		/// Binding for glTextureColorMaskSGIS function.
		/// </summary>
		/// <param name="red">
		/// A <see cref="T:System.Boolean"/>.
		/// </param>
		/// <param name="green">
		/// A <see cref="T:System.Boolean"/>.
		/// </param>
		/// <param name="blue">
		/// A <see cref="T:System.Boolean"/>.
		/// </param>
		/// <param name="alpha">
		/// A <see cref="T:System.Boolean"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void TextureColorMaskSGIS(bool red, bool green, bool blue, bool alpha) {
			if      (Delegates.pglTextureColorMaskSGIS != null)
				Delegates.pglTextureColorMaskSGIS(red, green, blue, alpha);
			else
				throw new InvalidOperationException("binding point TextureColorMaskSGIS cannot be found");
			LogProc("glTextureColorMaskSGIS({0}, {1}, {2}, {3})", red, green, blue, alpha);
		}

		/// <summary>
		/// Binding for glTextureRangeAPPLE function.
		/// </summary>
		/// <param name="target">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="length">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pointer">
		/// A <see cref="T:System.IntPtr"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void TextureRangeAPPLE(int target, Int32 length, object pointer) {
			GCHandle pp_pointer = GCHandle.Alloc(pointer, GCHandleType.Pinned);
			try {
				if      (Delegates.pglTextureRangeAPPLE != null)
					Delegates.pglTextureRangeAPPLE(target, length, pp_pointer.AddrOfPinnedObject());
				else
					throw new InvalidOperationException("binding point TextureRangeAPPLE cannot be found");
			} finally {
				pp_pointer.Free();
			}
			LogProc("glTextureRangeAPPLE({0}, {1}, {2})", target, length, pointer);
		}

		/// <summary>
		/// Binding for glVertexArrayParameteriAPPLE function.
		/// </summary>
		/// <param name="pname">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="param">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void VertexArrayParameterAPPLE(int pname, int param) {
			if      (Delegates.pglVertexArrayParameteriAPPLE != null)
				Delegates.pglVertexArrayParameteriAPPLE(pname, param);
			else
				throw new InvalidOperationException("binding point VertexArrayParameterAPPLE cannot be found");
			LogProc("glVertexArrayParameteriAPPLE({0}, {1})", pname, param);
		}

		/// <summary>
		/// Binding for glVertexArrayRangeAPPLE function.
		/// </summary>
		/// <param name="length">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pointer">
		/// A <see cref="T:System.IntPtr"/>.
		/// This parameter holds data returned from function.
		/// </param>
		/// @note This routine is available from OpenGL 1.2
		public static void VertexArrayRangeAPPLE(Int32 length, [Out] object pointer) {
			GCHandle pp_pointer = GCHandle.Alloc(pointer, GCHandleType.Pinned);
			try {
				if      (Delegates.pglVertexArrayRangeAPPLE != null)
					Delegates.pglVertexArrayRangeAPPLE(length, pp_pointer.AddrOfPinnedObject());
				else
					throw new InvalidOperationException("binding point VertexArrayRangeAPPLE cannot be found");
			} finally {
				pp_pointer.Free();
			}
			LogProc("glVertexArrayRangeAPPLE({0}, {1})", length, pointer);
		}

		/// <summary>
		/// Binding for glVertexPointervINTEL function.
		/// </summary>
		/// <param name="size">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="type">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="pointer">
		/// A <see cref="T:System.IntPtr*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.1
		public static void VertexPointerINTEL(int size, int type, IntPtr[] pointer) {
			unsafe {
				fixed (IntPtr* fp_pointer = pointer)
				{
					if      (Delegates.pglVertexPointervINTEL != null)
						Delegates.pglVertexPointervINTEL(size, type, fp_pointer);
					else
						throw new InvalidOperationException("binding point VertexPointerINTEL cannot be found");
				}
			}
			LogProc("glVertexPointervINTEL({0}, {1}, {2})", size, type, pointer);
		}

		/// <summary>
		/// Binding for glWindowPos2dMESA function.
		/// </summary>
		/// <param name="x">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos2MESA(double x, double y) {
			if      (Delegates.pglWindowPos2dMESA != null)
				Delegates.pglWindowPos2dMESA(x, y);
			else
				throw new InvalidOperationException("binding point WindowPos2MESA cannot be found");
			LogProc("glWindowPos2dMESA({0}, {1})", x, y);
		}

		/// <summary>
		/// Binding for glWindowPos2dvMESA function.
		/// </summary>
		/// <param name="v">
		/// A <see cref="T:System.Double*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos2MESA(double[] v) {
			unsafe {
				fixed (double* fp_v = v)
				{
					if      (Delegates.pglWindowPos2dvMESA != null)
						Delegates.pglWindowPos2dvMESA(fp_v);
					else
						throw new InvalidOperationException("binding point WindowPos2MESA cannot be found");
				}
			}
			LogProc("glWindowPos2dvMESA({0})", v);
		}

		/// <summary>
		/// Binding for glWindowPos2fMESA function.
		/// </summary>
		/// <param name="x">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos2MESA(float x, float y) {
			if      (Delegates.pglWindowPos2fMESA != null)
				Delegates.pglWindowPos2fMESA(x, y);
			else
				throw new InvalidOperationException("binding point WindowPos2MESA cannot be found");
			LogProc("glWindowPos2fMESA({0}, {1})", x, y);
		}

		/// <summary>
		/// Binding for glWindowPos2fvMESA function.
		/// </summary>
		/// <param name="v">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos2MESA(float[] v) {
			unsafe {
				fixed (float* fp_v = v)
				{
					if      (Delegates.pglWindowPos2fvMESA != null)
						Delegates.pglWindowPos2fvMESA(fp_v);
					else
						throw new InvalidOperationException("binding point WindowPos2MESA cannot be found");
				}
			}
			LogProc("glWindowPos2fvMESA({0})", v);
		}

		/// <summary>
		/// Binding for glWindowPos2iMESA function.
		/// </summary>
		/// <param name="x">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos2MESA(int x, int y) {
			if      (Delegates.pglWindowPos2iMESA != null)
				Delegates.pglWindowPos2iMESA(x, y);
			else
				throw new InvalidOperationException("binding point WindowPos2MESA cannot be found");
			LogProc("glWindowPos2iMESA({0}, {1})", x, y);
		}

		/// <summary>
		/// Binding for glWindowPos2ivMESA function.
		/// </summary>
		/// <param name="v">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos2MESA(int[] v) {
			unsafe {
				fixed (int* fp_v = v)
				{
					if      (Delegates.pglWindowPos2ivMESA != null)
						Delegates.pglWindowPos2ivMESA(fp_v);
					else
						throw new InvalidOperationException("binding point WindowPos2MESA cannot be found");
				}
			}
			LogProc("glWindowPos2ivMESA({0})", v);
		}

		/// <summary>
		/// Binding for glWindowPos2sMESA function.
		/// </summary>
		/// <param name="x">
		/// A <see cref="T:System.Int16"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:System.Int16"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos2MESA(Int16 x, Int16 y) {
			if      (Delegates.pglWindowPos2sMESA != null)
				Delegates.pglWindowPos2sMESA(x, y);
			else
				throw new InvalidOperationException("binding point WindowPos2MESA cannot be found");
			LogProc("glWindowPos2sMESA({0}, {1})", x, y);
		}

		/// <summary>
		/// Binding for glWindowPos2svMESA function.
		/// </summary>
		/// <param name="v">
		/// A <see cref="T:System.Int16*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos2MESA(Int16[] v) {
			unsafe {
				fixed (Int16* fp_v = v)
				{
					if      (Delegates.pglWindowPos2svMESA != null)
						Delegates.pglWindowPos2svMESA(fp_v);
					else
						throw new InvalidOperationException("binding point WindowPos2MESA cannot be found");
				}
			}
			LogProc("glWindowPos2svMESA({0})", v);
		}

		/// <summary>
		/// Binding for glWindowPos3dMESA function.
		/// </summary>
		/// <param name="x">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos3MESA(double x, double y, double z) {
			if      (Delegates.pglWindowPos3dMESA != null)
				Delegates.pglWindowPos3dMESA(x, y, z);
			else
				throw new InvalidOperationException("binding point WindowPos3MESA cannot be found");
			LogProc("glWindowPos3dMESA({0}, {1}, {2})", x, y, z);
		}

		/// <summary>
		/// Binding for glWindowPos3dvMESA function.
		/// </summary>
		/// <param name="v">
		/// A <see cref="T:System.Double*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos3MESA(double[] v) {
			unsafe {
				fixed (double* fp_v = v)
				{
					if      (Delegates.pglWindowPos3dvMESA != null)
						Delegates.pglWindowPos3dvMESA(fp_v);
					else
						throw new InvalidOperationException("binding point WindowPos3MESA cannot be found");
				}
			}
			LogProc("glWindowPos3dvMESA({0})", v);
		}

		/// <summary>
		/// Binding for glWindowPos3fMESA function.
		/// </summary>
		/// <param name="x">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos3MESA(float x, float y, float z) {
			if      (Delegates.pglWindowPos3fMESA != null)
				Delegates.pglWindowPos3fMESA(x, y, z);
			else
				throw new InvalidOperationException("binding point WindowPos3MESA cannot be found");
			LogProc("glWindowPos3fMESA({0}, {1}, {2})", x, y, z);
		}

		/// <summary>
		/// Binding for glWindowPos3fvMESA function.
		/// </summary>
		/// <param name="v">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos3MESA(float[] v) {
			unsafe {
				fixed (float* fp_v = v)
				{
					if      (Delegates.pglWindowPos3fvMESA != null)
						Delegates.pglWindowPos3fvMESA(fp_v);
					else
						throw new InvalidOperationException("binding point WindowPos3MESA cannot be found");
				}
			}
			LogProc("glWindowPos3fvMESA({0})", v);
		}

		/// <summary>
		/// Binding for glWindowPos3iMESA function.
		/// </summary>
		/// <param name="x">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos3MESA(int x, int y, int z) {
			if      (Delegates.pglWindowPos3iMESA != null)
				Delegates.pglWindowPos3iMESA(x, y, z);
			else
				throw new InvalidOperationException("binding point WindowPos3MESA cannot be found");
			LogProc("glWindowPos3iMESA({0}, {1}, {2})", x, y, z);
		}

		/// <summary>
		/// Binding for glWindowPos3ivMESA function.
		/// </summary>
		/// <param name="v">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos3MESA(int[] v) {
			unsafe {
				fixed (int* fp_v = v)
				{
					if      (Delegates.pglWindowPos3ivMESA != null)
						Delegates.pglWindowPos3ivMESA(fp_v);
					else
						throw new InvalidOperationException("binding point WindowPos3MESA cannot be found");
				}
			}
			LogProc("glWindowPos3ivMESA({0})", v);
		}

		/// <summary>
		/// Binding for glWindowPos3sMESA function.
		/// </summary>
		/// <param name="x">
		/// A <see cref="T:System.Int16"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:System.Int16"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:System.Int16"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos3MESA(Int16 x, Int16 y, Int16 z) {
			if      (Delegates.pglWindowPos3sMESA != null)
				Delegates.pglWindowPos3sMESA(x, y, z);
			else
				throw new InvalidOperationException("binding point WindowPos3MESA cannot be found");
			LogProc("glWindowPos3sMESA({0}, {1}, {2})", x, y, z);
		}

		/// <summary>
		/// Binding for glWindowPos3svMESA function.
		/// </summary>
		/// <param name="v">
		/// A <see cref="T:System.Int16*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos3MESA(Int16[] v) {
			unsafe {
				fixed (Int16* fp_v = v)
				{
					if      (Delegates.pglWindowPos3svMESA != null)
						Delegates.pglWindowPos3svMESA(fp_v);
					else
						throw new InvalidOperationException("binding point WindowPos3MESA cannot be found");
				}
			}
			LogProc("glWindowPos3svMESA({0})", v);
		}

		/// <summary>
		/// Binding for glWindowPos4dMESA function.
		/// </summary>
		/// <param name="x">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// <param name="w">
		/// A <see cref="T:System.Double"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos4MESA(double x, double y, double z, double w) {
			if      (Delegates.pglWindowPos4dMESA != null)
				Delegates.pglWindowPos4dMESA(x, y, z, w);
			else
				throw new InvalidOperationException("binding point WindowPos4MESA cannot be found");
			LogProc("glWindowPos4dMESA({0}, {1}, {2}, {3})", x, y, z, w);
		}

		/// <summary>
		/// Binding for glWindowPos4dvMESA function.
		/// </summary>
		/// <param name="v">
		/// A <see cref="T:System.Double*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos4MESA(double[] v) {
			unsafe {
				fixed (double* fp_v = v)
				{
					if      (Delegates.pglWindowPos4dvMESA != null)
						Delegates.pglWindowPos4dvMESA(fp_v);
					else
						throw new InvalidOperationException("binding point WindowPos4MESA cannot be found");
				}
			}
			LogProc("glWindowPos4dvMESA({0})", v);
		}

		/// <summary>
		/// Binding for glWindowPos4fMESA function.
		/// </summary>
		/// <param name="x">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// <param name="w">
		/// A <see cref="T:System.Single"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos4MESA(float x, float y, float z, float w) {
			if      (Delegates.pglWindowPos4fMESA != null)
				Delegates.pglWindowPos4fMESA(x, y, z, w);
			else
				throw new InvalidOperationException("binding point WindowPos4MESA cannot be found");
			LogProc("glWindowPos4fMESA({0}, {1}, {2}, {3})", x, y, z, w);
		}

		/// <summary>
		/// Binding for glWindowPos4fvMESA function.
		/// </summary>
		/// <param name="v">
		/// A <see cref="T:System.Single*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos4MESA(float[] v) {
			unsafe {
				fixed (float* fp_v = v)
				{
					if      (Delegates.pglWindowPos4fvMESA != null)
						Delegates.pglWindowPos4fvMESA(fp_v);
					else
						throw new InvalidOperationException("binding point WindowPos4MESA cannot be found");
				}
			}
			LogProc("glWindowPos4fvMESA({0})", v);
		}

		/// <summary>
		/// Binding for glWindowPos4iMESA function.
		/// </summary>
		/// <param name="x">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// <param name="w">
		/// A <see cref="T:System.Int32"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos4MESA(int x, int y, int z, int w) {
			if      (Delegates.pglWindowPos4iMESA != null)
				Delegates.pglWindowPos4iMESA(x, y, z, w);
			else
				throw new InvalidOperationException("binding point WindowPos4MESA cannot be found");
			LogProc("glWindowPos4iMESA({0}, {1}, {2}, {3})", x, y, z, w);
		}

		/// <summary>
		/// Binding for glWindowPos4ivMESA function.
		/// </summary>
		/// <param name="v">
		/// A <see cref="T:System.Int32*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos4MESA(int[] v) {
			unsafe {
				fixed (int* fp_v = v)
				{
					if      (Delegates.pglWindowPos4ivMESA != null)
						Delegates.pglWindowPos4ivMESA(fp_v);
					else
						throw new InvalidOperationException("binding point WindowPos4MESA cannot be found");
				}
			}
			LogProc("glWindowPos4ivMESA({0})", v);
		}

		/// <summary>
		/// Binding for glWindowPos4sMESA function.
		/// </summary>
		/// <param name="x">
		/// A <see cref="T:System.Int16"/>.
		/// </param>
		/// <param name="y">
		/// A <see cref="T:System.Int16"/>.
		/// </param>
		/// <param name="z">
		/// A <see cref="T:System.Int16"/>.
		/// </param>
		/// <param name="w">
		/// A <see cref="T:System.Int16"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos4MESA(Int16 x, Int16 y, Int16 z, Int16 w) {
			if      (Delegates.pglWindowPos4sMESA != null)
				Delegates.pglWindowPos4sMESA(x, y, z, w);
			else
				throw new InvalidOperationException("binding point WindowPos4MESA cannot be found");
			LogProc("glWindowPos4sMESA({0}, {1}, {2}, {3})", x, y, z, w);
		}

		/// <summary>
		/// Binding for glWindowPos4svMESA function.
		/// </summary>
		/// <param name="v">
		/// A <see cref="T:System.Int16*"/>.
		/// </param>
		/// @note This routine is available from OpenGL 1.0
		public static void WindowPos4MESA(Int16[] v) {
			unsafe {
				fixed (Int16* fp_v = v)
				{
					if      (Delegates.pglWindowPos4svMESA != null)
						Delegates.pglWindowPos4svMESA(fp_v);
					else
						throw new InvalidOperationException("binding point WindowPos4MESA cannot be found");
				}
			}
			LogProc("glWindowPos4svMESA({0})", v);
		}

		internal static partial class Delegates
		{
			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glAsyncMarkerSGIX(UInt32 marker);
			[ThreadStatic]
			internal static glAsyncMarkerSGIX pglAsyncMarkerSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glBindVertexArrayAPPLE(UInt32 array);
			[ThreadStatic]
			internal static glBindVertexArrayAPPLE pglBindVertexArrayAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glBlendFuncSeparateINGR(int sfactorRGB, int dfactorRGB, int sfactorAlpha, int dfactorAlpha);
			[ThreadStatic]
			internal static glBlendFuncSeparateINGR pglBlendFuncSeparateINGR = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glBufferParameteriAPPLE(int target, int pname, int param);
			[ThreadStatic]
			internal static glBufferParameteriAPPLE pglBufferParameteriAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glColorPointervINTEL(int size, int type, IntPtr* pointer);
			[ThreadStatic]
			internal static glColorPointervINTEL pglColorPointervINTEL = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glColorTableParameterfvSGI(int target, int pname, float* @params);
			[ThreadStatic]
			internal static glColorTableParameterfvSGI pglColorTableParameterfvSGI = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glColorTableParameterivSGI(int target, int pname, int* @params);
			[ThreadStatic]
			internal static glColorTableParameterivSGI pglColorTableParameterivSGI = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glColorTableSGI(int target, int internalformat, Int32 width, int format, int type, IntPtr table);
			[ThreadStatic]
			internal static glColorTableSGI pglColorTableSGI = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glCopyColorTableSGI(int target, int internalformat, int x, int y, Int32 width);
			[ThreadStatic]
			internal static glCopyColorTableSGI pglCopyColorTableSGI = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glDeformationMap3dSGIX(int target, double u1, double u2, int ustride, int uorder, double v1, double v2, int vstride, int vorder, double w1, double w2, int wstride, int worder, double* points);
			[ThreadStatic]
			internal static glDeformationMap3dSGIX pglDeformationMap3dSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glDeformationMap3fSGIX(int target, float u1, float u2, int ustride, int uorder, float v1, float v2, int vstride, int vorder, float w1, float w2, int wstride, int worder, float* points);
			[ThreadStatic]
			internal static glDeformationMap3fSGIX pglDeformationMap3fSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glDeformSGIX(uint mask);
			[ThreadStatic]
			internal static glDeformSGIX pglDeformSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glDeleteAsyncMarkersSGIX(UInt32 marker, Int32 range);
			[ThreadStatic]
			internal static glDeleteAsyncMarkersSGIX pglDeleteAsyncMarkersSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glDeleteFencesAPPLE(Int32 n, UInt32* fences);
			[ThreadStatic]
			internal static glDeleteFencesAPPLE pglDeleteFencesAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glDeleteVertexArraysAPPLE(Int32 n, UInt32* arrays);
			[ThreadStatic]
			internal static glDeleteVertexArraysAPPLE pglDeleteVertexArraysAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glDetailTexFuncSGIS(int target, Int32 n, float* points);
			[ThreadStatic]
			internal static glDetailTexFuncSGIS pglDetailTexFuncSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glDisableVertexAttribAPPLE(UInt32 index, int pname);
			[ThreadStatic]
			internal static glDisableVertexAttribAPPLE pglDisableVertexAttribAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glDrawElementArrayAPPLE(int mode, int first, Int32 count);
			[ThreadStatic]
			internal static glDrawElementArrayAPPLE pglDrawElementArrayAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glDrawMeshArraysSUN(int mode, int first, Int32 count, Int32 width);
			[ThreadStatic]
			internal static glDrawMeshArraysSUN pglDrawMeshArraysSUN = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glDrawRangeElementArrayAPPLE(int mode, UInt32 start, UInt32 end, int first, Int32 count);
			[ThreadStatic]
			internal static glDrawRangeElementArrayAPPLE pglDrawRangeElementArrayAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glElementPointerAPPLE(int type, IntPtr pointer);
			[ThreadStatic]
			internal static glElementPointerAPPLE pglElementPointerAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glEnableVertexAttribAPPLE(UInt32 index, int pname);
			[ThreadStatic]
			internal static glEnableVertexAttribAPPLE pglEnableVertexAttribAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate int glFinishAsyncSGIX([Out] UInt32* markerp);
			[ThreadStatic]
			internal static glFinishAsyncSGIX pglFinishAsyncSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glFinishFenceAPPLE(UInt32 fence);
			[ThreadStatic]
			internal static glFinishFenceAPPLE pglFinishFenceAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glFinishObjectAPPLE(int @object, int name);
			[ThreadStatic]
			internal static glFinishObjectAPPLE pglFinishObjectAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glFinishTextureSUNX();
			[ThreadStatic]
			internal static glFinishTextureSUNX pglFinishTextureSUNX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glFlushMappedBufferRangeAPPLE(int target, IntPtr offset, UInt32 size);
			[ThreadStatic]
			internal static glFlushMappedBufferRangeAPPLE pglFlushMappedBufferRangeAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glFlushRasterSGIX();
			[ThreadStatic]
			internal static glFlushRasterSGIX pglFlushRasterSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glFlushVertexArrayRangeAPPLE(Int32 length, [Out] IntPtr pointer);
			[ThreadStatic]
			internal static glFlushVertexArrayRangeAPPLE pglFlushVertexArrayRangeAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glFogFuncSGIS(Int32 n, float* points);
			[ThreadStatic]
			internal static glFogFuncSGIS pglFogFuncSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glFragmentColorMaterialSGIX(int face, int mode);
			[ThreadStatic]
			internal static glFragmentColorMaterialSGIX pglFragmentColorMaterialSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glFragmentLightfSGIX(int light, int pname, float param);
			[ThreadStatic]
			internal static glFragmentLightfSGIX pglFragmentLightfSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glFragmentLightfvSGIX(int light, int pname, float* @params);
			[ThreadStatic]
			internal static glFragmentLightfvSGIX pglFragmentLightfvSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glFragmentLightiSGIX(int light, int pname, int param);
			[ThreadStatic]
			internal static glFragmentLightiSGIX pglFragmentLightiSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glFragmentLightivSGIX(int light, int pname, int* @params);
			[ThreadStatic]
			internal static glFragmentLightivSGIX pglFragmentLightivSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glFragmentLightModelfSGIX(int pname, float param);
			[ThreadStatic]
			internal static glFragmentLightModelfSGIX pglFragmentLightModelfSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glFragmentLightModelfvSGIX(int pname, float* @params);
			[ThreadStatic]
			internal static glFragmentLightModelfvSGIX pglFragmentLightModelfvSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glFragmentLightModeliSGIX(int pname, int param);
			[ThreadStatic]
			internal static glFragmentLightModeliSGIX pglFragmentLightModeliSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glFragmentLightModelivSGIX(int pname, int* @params);
			[ThreadStatic]
			internal static glFragmentLightModelivSGIX pglFragmentLightModelivSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glFragmentMaterialfSGIX(int face, int pname, float param);
			[ThreadStatic]
			internal static glFragmentMaterialfSGIX pglFragmentMaterialfSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glFragmentMaterialfvSGIX(int face, int pname, float* @params);
			[ThreadStatic]
			internal static glFragmentMaterialfvSGIX pglFragmentMaterialfvSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glFragmentMaterialiSGIX(int face, int pname, int param);
			[ThreadStatic]
			internal static glFragmentMaterialiSGIX pglFragmentMaterialiSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glFragmentMaterialivSGIX(int face, int pname, int* @params);
			[ThreadStatic]
			internal static glFragmentMaterialivSGIX pglFragmentMaterialivSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glFrameTerminatorGREMEDY();
			[ThreadStatic]
			internal static glFrameTerminatorGREMEDY pglFrameTerminatorGREMEDY = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glFrameZoomSGIX(int factor);
			[ThreadStatic]
			internal static glFrameZoomSGIX pglFrameZoomSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate UInt32 glGenAsyncMarkersSGIX(Int32 range);
			[ThreadStatic]
			internal static glGenAsyncMarkersSGIX pglGenAsyncMarkersSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGenFencesAPPLE(Int32 n, [Out] UInt32* fences);
			[ThreadStatic]
			internal static glGenFencesAPPLE pglGenFencesAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGenVertexArraysAPPLE(Int32 n, [Out] UInt32* arrays);
			[ThreadStatic]
			internal static glGenVertexArraysAPPLE pglGenVertexArraysAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetColorTableParameterfvSGI(int target, int pname, [Out] float* @params);
			[ThreadStatic]
			internal static glGetColorTableParameterfvSGI pglGetColorTableParameterfvSGI = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetColorTableParameterivSGI(int target, int pname, [Out] int* @params);
			[ThreadStatic]
			internal static glGetColorTableParameterivSGI pglGetColorTableParameterivSGI = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glGetColorTableSGI(int target, int format, int type, [Out] IntPtr table);
			[ThreadStatic]
			internal static glGetColorTableSGI pglGetColorTableSGI = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetDetailTexFuncSGIS(int target, [Out] float* points);
			[ThreadStatic]
			internal static glGetDetailTexFuncSGIS pglGetDetailTexFuncSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetFogFuncSGIS([Out] float* points);
			[ThreadStatic]
			internal static glGetFogFuncSGIS pglGetFogFuncSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetFragmentLightfvSGIX(int light, int pname, [Out] float* @params);
			[ThreadStatic]
			internal static glGetFragmentLightfvSGIX pglGetFragmentLightfvSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetFragmentLightivSGIX(int light, int pname, [Out] int* @params);
			[ThreadStatic]
			internal static glGetFragmentLightivSGIX pglGetFragmentLightivSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetFragmentMaterialfvSGIX(int face, int pname, [Out] float* @params);
			[ThreadStatic]
			internal static glGetFragmentMaterialfvSGIX pglGetFragmentMaterialfvSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetFragmentMaterialivSGIX(int face, int pname, [Out] int* @params);
			[ThreadStatic]
			internal static glGetFragmentMaterialivSGIX pglGetFragmentMaterialivSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetImageTransformParameterfvHP(int target, int pname, [Out] float* @params);
			[ThreadStatic]
			internal static glGetImageTransformParameterfvHP pglGetImageTransformParameterfvHP = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetImageTransformParameterivHP(int target, int pname, [Out] int* @params);
			[ThreadStatic]
			internal static glGetImageTransformParameterivHP pglGetImageTransformParameterivHP = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate int glGetInstrumentsSGIX();
			[ThreadStatic]
			internal static glGetInstrumentsSGIX pglGetInstrumentsSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetListParameterfvSGIX(UInt32 list, int pname, [Out] float* @params);
			[ThreadStatic]
			internal static glGetListParameterfvSGIX pglGetListParameterfvSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetListParameterivSGIX(UInt32 list, int pname, [Out] int* @params);
			[ThreadStatic]
			internal static glGetListParameterivSGIX pglGetListParameterivSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetObjectParameterivAPPLE(int objectType, UInt32 name, int pname, [Out] int* @params);
			[ThreadStatic]
			internal static glGetObjectParameterivAPPLE pglGetObjectParameterivAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetPixelTexGenParameterfvSGIS(int pname, [Out] float* @params);
			[ThreadStatic]
			internal static glGetPixelTexGenParameterfvSGIS pglGetPixelTexGenParameterfvSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetPixelTexGenParameterivSGIS(int pname, [Out] int* @params);
			[ThreadStatic]
			internal static glGetPixelTexGenParameterivSGIS pglGetPixelTexGenParameterivSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetSharpenTexFuncSGIS(int target, [Out] float* points);
			[ThreadStatic]
			internal static glGetSharpenTexFuncSGIS pglGetSharpenTexFuncSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetTexFilterFuncSGIS(int target, int filter, [Out] float* weights);
			[ThreadStatic]
			internal static glGetTexFilterFuncSGIS pglGetTexFilterFuncSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glGetTexParameterPointervAPPLE(int target, int pname, [Out] IntPtr* @params);
			[ThreadStatic]
			internal static glGetTexParameterPointervAPPLE pglGetTexParameterPointervAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glGlobalAlphaFactorbSUN(sbyte factor);
			[ThreadStatic]
			internal static glGlobalAlphaFactorbSUN pglGlobalAlphaFactorbSUN = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glGlobalAlphaFactordSUN(double factor);
			[ThreadStatic]
			internal static glGlobalAlphaFactordSUN pglGlobalAlphaFactordSUN = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glGlobalAlphaFactorfSUN(float factor);
			[ThreadStatic]
			internal static glGlobalAlphaFactorfSUN pglGlobalAlphaFactorfSUN = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glGlobalAlphaFactoriSUN(int factor);
			[ThreadStatic]
			internal static glGlobalAlphaFactoriSUN pglGlobalAlphaFactoriSUN = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glGlobalAlphaFactorsSUN(Int16 factor);
			[ThreadStatic]
			internal static glGlobalAlphaFactorsSUN pglGlobalAlphaFactorsSUN = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glGlobalAlphaFactorubSUN(byte factor);
			[ThreadStatic]
			internal static glGlobalAlphaFactorubSUN pglGlobalAlphaFactorubSUN = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glGlobalAlphaFactoruiSUN(UInt32 factor);
			[ThreadStatic]
			internal static glGlobalAlphaFactoruiSUN pglGlobalAlphaFactoruiSUN = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glGlobalAlphaFactorusSUN(UInt16 factor);
			[ThreadStatic]
			internal static glGlobalAlphaFactorusSUN pglGlobalAlphaFactorusSUN = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glHintPGI(int target, int mode);
			[ThreadStatic]
			internal static glHintPGI pglHintPGI = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glIglooInterfaceSGIX(int pname, IntPtr @params);
			[ThreadStatic]
			internal static glIglooInterfaceSGIX pglIglooInterfaceSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glImageTransformParameterfHP(int target, int pname, float param);
			[ThreadStatic]
			internal static glImageTransformParameterfHP pglImageTransformParameterfHP = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glImageTransformParameterfvHP(int target, int pname, float* @params);
			[ThreadStatic]
			internal static glImageTransformParameterfvHP pglImageTransformParameterfvHP = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glImageTransformParameteriHP(int target, int pname, int param);
			[ThreadStatic]
			internal static glImageTransformParameteriHP pglImageTransformParameteriHP = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glImageTransformParameterivHP(int target, int pname, int* @params);
			[ThreadStatic]
			internal static glImageTransformParameterivHP pglImageTransformParameterivHP = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glInstrumentsBufferSGIX(Int32 size, [Out] int* buffer);
			[ThreadStatic]
			internal static glInstrumentsBufferSGIX pglInstrumentsBufferSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate bool glIsAsyncMarkerSGIX(UInt32 marker);
			[ThreadStatic]
			internal static glIsAsyncMarkerSGIX pglIsAsyncMarkerSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate bool glIsFenceAPPLE(UInt32 fence);
			[ThreadStatic]
			internal static glIsFenceAPPLE pglIsFenceAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate bool glIsVertexArrayAPPLE(UInt32 array);
			[ThreadStatic]
			internal static glIsVertexArrayAPPLE pglIsVertexArrayAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate bool glIsVertexAttribEnabledAPPLE(UInt32 index, int pname);
			[ThreadStatic]
			internal static glIsVertexAttribEnabledAPPLE pglIsVertexAttribEnabledAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glLightEnviSGIX(int pname, int param);
			[ThreadStatic]
			internal static glLightEnviSGIX pglLightEnviSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glListParameterfSGIX(UInt32 list, int pname, float param);
			[ThreadStatic]
			internal static glListParameterfSGIX pglListParameterfSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glListParameterfvSGIX(UInt32 list, int pname, float* @params);
			[ThreadStatic]
			internal static glListParameterfvSGIX pglListParameterfvSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glListParameteriSGIX(UInt32 list, int pname, int param);
			[ThreadStatic]
			internal static glListParameteriSGIX pglListParameteriSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glListParameterivSGIX(UInt32 list, int pname, int* @params);
			[ThreadStatic]
			internal static glListParameterivSGIX pglListParameterivSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glLoadIdentityDeformationMapSGIX(uint mask);
			[ThreadStatic]
			internal static glLoadIdentityDeformationMapSGIX pglLoadIdentityDeformationMapSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glMapVertexAttrib1dAPPLE(UInt32 index, UInt32 size, double u1, double u2, int stride, int order, double* points);
			[ThreadStatic]
			internal static glMapVertexAttrib1dAPPLE pglMapVertexAttrib1dAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glMapVertexAttrib1fAPPLE(UInt32 index, UInt32 size, float u1, float u2, int stride, int order, float* points);
			[ThreadStatic]
			internal static glMapVertexAttrib1fAPPLE pglMapVertexAttrib1fAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glMapVertexAttrib2dAPPLE(UInt32 index, UInt32 size, double u1, double u2, int ustride, int uorder, double v1, double v2, int vstride, int vorder, double* points);
			[ThreadStatic]
			internal static glMapVertexAttrib2dAPPLE pglMapVertexAttrib2dAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glMapVertexAttrib2fAPPLE(UInt32 index, UInt32 size, float u1, float u2, int ustride, int uorder, float v1, float v2, int vstride, int vorder, float* points);
			[ThreadStatic]
			internal static glMapVertexAttrib2fAPPLE pglMapVertexAttrib2fAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glMultiDrawElementArrayAPPLE(int mode, int* first, Int32* count, Int32 primcount);
			[ThreadStatic]
			internal static glMultiDrawElementArrayAPPLE pglMultiDrawElementArrayAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glMultiDrawRangeElementArrayAPPLE(int mode, UInt32 start, UInt32 end, int* first, Int32* count, Int32 primcount);
			[ThreadStatic]
			internal static glMultiDrawRangeElementArrayAPPLE pglMultiDrawRangeElementArrayAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glMultiModeDrawArraysIBM(int* mode, int* first, Int32* count, Int32 primcount, int modestride);
			[ThreadStatic]
			internal static glMultiModeDrawArraysIBM pglMultiModeDrawArraysIBM = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glMultiModeDrawElementsIBM(int* mode, Int32* count, int type, IntPtr* indices, Int32 primcount, int modestride);
			[ThreadStatic]
			internal static glMultiModeDrawElementsIBM pglMultiModeDrawElementsIBM = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glNormalPointervINTEL(int type, IntPtr* pointer);
			[ThreadStatic]
			internal static glNormalPointervINTEL pglNormalPointervINTEL = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate int glObjectPurgeableAPPLE(int objectType, UInt32 name, int option);
			[ThreadStatic]
			internal static glObjectPurgeableAPPLE pglObjectPurgeableAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate int glObjectUnpurgeableAPPLE(int objectType, UInt32 name, int option);
			[ThreadStatic]
			internal static glObjectUnpurgeableAPPLE pglObjectUnpurgeableAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glPixelTexGenParameterfSGIS(int pname, float param);
			[ThreadStatic]
			internal static glPixelTexGenParameterfSGIS pglPixelTexGenParameterfSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glPixelTexGenParameterfvSGIS(int pname, float* @params);
			[ThreadStatic]
			internal static glPixelTexGenParameterfvSGIS pglPixelTexGenParameterfvSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glPixelTexGenParameteriSGIS(int pname, int param);
			[ThreadStatic]
			internal static glPixelTexGenParameteriSGIS pglPixelTexGenParameteriSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glPixelTexGenParameterivSGIS(int pname, int* @params);
			[ThreadStatic]
			internal static glPixelTexGenParameterivSGIS pglPixelTexGenParameterivSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glPixelTexGenSGIX(int mode);
			[ThreadStatic]
			internal static glPixelTexGenSGIX pglPixelTexGenSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glPointParameterfSGIS(int pname, float param);
			[ThreadStatic]
			internal static glPointParameterfSGIS pglPointParameterfSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glPointParameterfvSGIS(int pname, float* @params);
			[ThreadStatic]
			internal static glPointParameterfvSGIS pglPointParameterfvSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate int glPollAsyncSGIX([Out] UInt32* markerp);
			[ThreadStatic]
			internal static glPollAsyncSGIX pglPollAsyncSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate int glPollInstrumentsSGIX([Out] int* marker_p);
			[ThreadStatic]
			internal static glPollInstrumentsSGIX pglPollInstrumentsSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glReadInstrumentsSGIX(int marker);
			[ThreadStatic]
			internal static glReadInstrumentsSGIX pglReadInstrumentsSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glReferencePlaneSGIX(double* equation);
			[ThreadStatic]
			internal static glReferencePlaneSGIX pglReferencePlaneSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glReplacementCodePointerSUN(int type, Int32 stride, IntPtr* pointer);
			[ThreadStatic]
			internal static glReplacementCodePointerSUN pglReplacementCodePointerSUN = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glReplacementCodeubSUN(byte code);
			[ThreadStatic]
			internal static glReplacementCodeubSUN pglReplacementCodeubSUN = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glReplacementCodeubvSUN(byte* code);
			[ThreadStatic]
			internal static glReplacementCodeubvSUN pglReplacementCodeubvSUN = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glReplacementCodeuiSUN(UInt32 code);
			[ThreadStatic]
			internal static glReplacementCodeuiSUN pglReplacementCodeuiSUN = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glReplacementCodeuivSUN(UInt32* code);
			[ThreadStatic]
			internal static glReplacementCodeuivSUN pglReplacementCodeuivSUN = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glReplacementCodeusSUN(UInt16 code);
			[ThreadStatic]
			internal static glReplacementCodeusSUN pglReplacementCodeusSUN = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glReplacementCodeusvSUN(UInt16* code);
			[ThreadStatic]
			internal static glReplacementCodeusvSUN pglReplacementCodeusvSUN = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glResizeBuffersMESA();
			[ThreadStatic]
			internal static glResizeBuffersMESA pglResizeBuffersMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glSampleMaskSGIS(float value, bool invert);
			[ThreadStatic]
			internal static glSampleMaskSGIS pglSampleMaskSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glSamplePatternSGIS(int pattern);
			[ThreadStatic]
			internal static glSamplePatternSGIS pglSamplePatternSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glSetFenceAPPLE(UInt32 fence);
			[ThreadStatic]
			internal static glSetFenceAPPLE pglSetFenceAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glSharpenTexFuncSGIS(int target, Int32 n, float* points);
			[ThreadStatic]
			internal static glSharpenTexFuncSGIS pglSharpenTexFuncSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glSpriteParameterfSGIX(int pname, float param);
			[ThreadStatic]
			internal static glSpriteParameterfSGIX pglSpriteParameterfSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glSpriteParameterfvSGIX(int pname, float* @params);
			[ThreadStatic]
			internal static glSpriteParameterfvSGIX pglSpriteParameterfvSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glSpriteParameteriSGIX(int pname, int param);
			[ThreadStatic]
			internal static glSpriteParameteriSGIX pglSpriteParameteriSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glSpriteParameterivSGIX(int pname, int* @params);
			[ThreadStatic]
			internal static glSpriteParameterivSGIX pglSpriteParameterivSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glStartInstrumentsSGIX();
			[ThreadStatic]
			internal static glStartInstrumentsSGIX pglStartInstrumentsSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glStopInstrumentsSGIX(int marker);
			[ThreadStatic]
			internal static glStopInstrumentsSGIX pglStopInstrumentsSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glStringMarkerGREMEDY(Int32 len, IntPtr @string);
			[ThreadStatic]
			internal static glStringMarkerGREMEDY pglStringMarkerGREMEDY = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glTagSampleBufferSGIX();
			[ThreadStatic]
			internal static glTagSampleBufferSGIX pglTagSampleBufferSGIX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glTbufferMask3DFX(UInt32 mask);
			[ThreadStatic]
			internal static glTbufferMask3DFX pglTbufferMask3DFX = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate bool glTestFenceAPPLE(UInt32 fence);
			[ThreadStatic]
			internal static glTestFenceAPPLE pglTestFenceAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate bool glTestObjectAPPLE(int @object, UInt32 name);
			[ThreadStatic]
			internal static glTestObjectAPPLE pglTestObjectAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glTexCoordPointervINTEL(int size, int type, IntPtr* pointer);
			[ThreadStatic]
			internal static glTexCoordPointervINTEL pglTexCoordPointervINTEL = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glTexFilterFuncSGIS(int target, int filter, Int32 n, float* weights);
			[ThreadStatic]
			internal static glTexFilterFuncSGIS pglTexFilterFuncSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glTexImage4DSGIS(int target, int level, int internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, int border, int format, int type, IntPtr pixels);
			[ThreadStatic]
			internal static glTexImage4DSGIS pglTexImage4DSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glTexSubImage4DSGIS(int target, int level, int xoffset, int yoffset, int zoffset, int woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, int format, int type, IntPtr pixels);
			[ThreadStatic]
			internal static glTexSubImage4DSGIS pglTexSubImage4DSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glTextureColorMaskSGIS(bool red, bool green, bool blue, bool alpha);
			[ThreadStatic]
			internal static glTextureColorMaskSGIS pglTextureColorMaskSGIS = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glTextureRangeAPPLE(int target, Int32 length, IntPtr pointer);
			[ThreadStatic]
			internal static glTextureRangeAPPLE pglTextureRangeAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glVertexArrayParameteriAPPLE(int pname, int param);
			[ThreadStatic]
			internal static glVertexArrayParameteriAPPLE pglVertexArrayParameteriAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glVertexArrayRangeAPPLE(Int32 length, [Out] IntPtr pointer);
			[ThreadStatic]
			internal static glVertexArrayRangeAPPLE pglVertexArrayRangeAPPLE = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glVertexPointervINTEL(int size, int type, IntPtr* pointer);
			[ThreadStatic]
			internal static glVertexPointervINTEL pglVertexPointervINTEL = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glWindowPos2dMESA(double x, double y);
			[ThreadStatic]
			internal static glWindowPos2dMESA pglWindowPos2dMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glWindowPos2dvMESA(double* v);
			[ThreadStatic]
			internal static glWindowPos2dvMESA pglWindowPos2dvMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glWindowPos2fMESA(float x, float y);
			[ThreadStatic]
			internal static glWindowPos2fMESA pglWindowPos2fMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glWindowPos2fvMESA(float* v);
			[ThreadStatic]
			internal static glWindowPos2fvMESA pglWindowPos2fvMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glWindowPos2iMESA(int x, int y);
			[ThreadStatic]
			internal static glWindowPos2iMESA pglWindowPos2iMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glWindowPos2ivMESA(int* v);
			[ThreadStatic]
			internal static glWindowPos2ivMESA pglWindowPos2ivMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glWindowPos2sMESA(Int16 x, Int16 y);
			[ThreadStatic]
			internal static glWindowPos2sMESA pglWindowPos2sMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glWindowPos2svMESA(Int16* v);
			[ThreadStatic]
			internal static glWindowPos2svMESA pglWindowPos2svMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glWindowPos3dMESA(double x, double y, double z);
			[ThreadStatic]
			internal static glWindowPos3dMESA pglWindowPos3dMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glWindowPos3dvMESA(double* v);
			[ThreadStatic]
			internal static glWindowPos3dvMESA pglWindowPos3dvMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glWindowPos3fMESA(float x, float y, float z);
			[ThreadStatic]
			internal static glWindowPos3fMESA pglWindowPos3fMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glWindowPos3fvMESA(float* v);
			[ThreadStatic]
			internal static glWindowPos3fvMESA pglWindowPos3fvMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glWindowPos3iMESA(int x, int y, int z);
			[ThreadStatic]
			internal static glWindowPos3iMESA pglWindowPos3iMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glWindowPos3ivMESA(int* v);
			[ThreadStatic]
			internal static glWindowPos3ivMESA pglWindowPos3ivMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glWindowPos3sMESA(Int16 x, Int16 y, Int16 z);
			[ThreadStatic]
			internal static glWindowPos3sMESA pglWindowPos3sMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glWindowPos3svMESA(Int16* v);
			[ThreadStatic]
			internal static glWindowPos3svMESA pglWindowPos3svMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glWindowPos4dMESA(double x, double y, double z, double w);
			[ThreadStatic]
			internal static glWindowPos4dMESA pglWindowPos4dMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glWindowPos4dvMESA(double* v);
			[ThreadStatic]
			internal static glWindowPos4dvMESA pglWindowPos4dvMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glWindowPos4fMESA(float x, float y, float z, float w);
			[ThreadStatic]
			internal static glWindowPos4fMESA pglWindowPos4fMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glWindowPos4fvMESA(float* v);
			[ThreadStatic]
			internal static glWindowPos4fvMESA pglWindowPos4fvMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glWindowPos4iMESA(int x, int y, int z, int w);
			[ThreadStatic]
			internal static glWindowPos4iMESA pglWindowPos4iMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glWindowPos4ivMESA(int* v);
			[ThreadStatic]
			internal static glWindowPos4ivMESA pglWindowPos4ivMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal delegate void glWindowPos4sMESA(Int16 x, Int16 y, Int16 z, Int16 w);
			[ThreadStatic]
			internal static glWindowPos4sMESA pglWindowPos4sMESA = null;

			[System.Security.SuppressUnmanagedCodeSecurity()]
			internal unsafe delegate void glWindowPos4svMESA(Int16* v);
			[ThreadStatic]
			internal static glWindowPos4svMESA pglWindowPos4svMESA = null;

		}

		internal static partial class Imports
		{
			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glAsyncMarkerSGIX", ExactSpelling = true)]
			internal extern static void glAsyncMarkerSGIX(UInt32 marker);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glBindVertexArrayAPPLE", ExactSpelling = true)]
			internal extern static void glBindVertexArrayAPPLE(UInt32 array);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glBlendFuncSeparateINGR", ExactSpelling = true)]
			internal extern static void glBlendFuncSeparateINGR(int sfactorRGB, int dfactorRGB, int sfactorAlpha, int dfactorAlpha);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glBufferParameteriAPPLE", ExactSpelling = true)]
			internal extern static void glBufferParameteriAPPLE(int target, int pname, int param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glColorPointervINTEL", ExactSpelling = true)]
			internal extern static unsafe void glColorPointervINTEL(int size, int type, IntPtr* pointer);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glColorTableParameterfvSGI", ExactSpelling = true)]
			internal extern static unsafe void glColorTableParameterfvSGI(int target, int pname, float* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glColorTableParameterivSGI", ExactSpelling = true)]
			internal extern static unsafe void glColorTableParameterivSGI(int target, int pname, int* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glColorTableSGI", ExactSpelling = true)]
			internal extern static void glColorTableSGI(int target, int internalformat, Int32 width, int format, int type, IntPtr table);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glCopyColorTableSGI", ExactSpelling = true)]
			internal extern static void glCopyColorTableSGI(int target, int internalformat, int x, int y, Int32 width);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glDeformationMap3dSGIX", ExactSpelling = true)]
			internal extern static unsafe void glDeformationMap3dSGIX(int target, double u1, double u2, int ustride, int uorder, double v1, double v2, int vstride, int vorder, double w1, double w2, int wstride, int worder, double* points);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glDeformationMap3fSGIX", ExactSpelling = true)]
			internal extern static unsafe void glDeformationMap3fSGIX(int target, float u1, float u2, int ustride, int uorder, float v1, float v2, int vstride, int vorder, float w1, float w2, int wstride, int worder, float* points);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glDeformSGIX", ExactSpelling = true)]
			internal extern static void glDeformSGIX(uint mask);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glDeleteAsyncMarkersSGIX", ExactSpelling = true)]
			internal extern static void glDeleteAsyncMarkersSGIX(UInt32 marker, Int32 range);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glDeleteFencesAPPLE", ExactSpelling = true)]
			internal extern static unsafe void glDeleteFencesAPPLE(Int32 n, UInt32* fences);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glDeleteVertexArraysAPPLE", ExactSpelling = true)]
			internal extern static unsafe void glDeleteVertexArraysAPPLE(Int32 n, UInt32* arrays);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glDetailTexFuncSGIS", ExactSpelling = true)]
			internal extern static unsafe void glDetailTexFuncSGIS(int target, Int32 n, float* points);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glDisableVertexAttribAPPLE", ExactSpelling = true)]
			internal extern static void glDisableVertexAttribAPPLE(UInt32 index, int pname);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glDrawElementArrayAPPLE", ExactSpelling = true)]
			internal extern static void glDrawElementArrayAPPLE(int mode, int first, Int32 count);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glDrawMeshArraysSUN", ExactSpelling = true)]
			internal extern static void glDrawMeshArraysSUN(int mode, int first, Int32 count, Int32 width);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glDrawRangeElementArrayAPPLE", ExactSpelling = true)]
			internal extern static void glDrawRangeElementArrayAPPLE(int mode, UInt32 start, UInt32 end, int first, Int32 count);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glElementPointerAPPLE", ExactSpelling = true)]
			internal extern static void glElementPointerAPPLE(int type, IntPtr pointer);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glEnableVertexAttribAPPLE", ExactSpelling = true)]
			internal extern static void glEnableVertexAttribAPPLE(UInt32 index, int pname);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFinishAsyncSGIX", ExactSpelling = true)]
			internal extern static unsafe int glFinishAsyncSGIX([Out]UInt32 markerp);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFinishFenceAPPLE", ExactSpelling = true)]
			internal extern static void glFinishFenceAPPLE(UInt32 fence);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFinishObjectAPPLE", ExactSpelling = true)]
			internal extern static void glFinishObjectAPPLE(int @object, int name);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFinishTextureSUNX", ExactSpelling = true)]
			internal extern static void glFinishTextureSUNX();

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFlushMappedBufferRangeAPPLE", ExactSpelling = true)]
			internal extern static void glFlushMappedBufferRangeAPPLE(int target, IntPtr offset, UInt32 size);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFlushRasterSGIX", ExactSpelling = true)]
			internal extern static void glFlushRasterSGIX();

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFlushVertexArrayRangeAPPLE", ExactSpelling = true)]
			internal extern static void glFlushVertexArrayRangeAPPLE(Int32 length, [Out]IntPtr pointer);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFogFuncSGIS", ExactSpelling = true)]
			internal extern static unsafe void glFogFuncSGIS(Int32 n, float* points);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFragmentColorMaterialSGIX", ExactSpelling = true)]
			internal extern static void glFragmentColorMaterialSGIX(int face, int mode);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFragmentLightfSGIX", ExactSpelling = true)]
			internal extern static void glFragmentLightfSGIX(int light, int pname, float param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFragmentLightfvSGIX", ExactSpelling = true)]
			internal extern static unsafe void glFragmentLightfvSGIX(int light, int pname, float* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFragmentLightiSGIX", ExactSpelling = true)]
			internal extern static void glFragmentLightiSGIX(int light, int pname, int param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFragmentLightivSGIX", ExactSpelling = true)]
			internal extern static unsafe void glFragmentLightivSGIX(int light, int pname, int* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFragmentLightModelfSGIX", ExactSpelling = true)]
			internal extern static void glFragmentLightModelfSGIX(int pname, float param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFragmentLightModelfvSGIX", ExactSpelling = true)]
			internal extern static unsafe void glFragmentLightModelfvSGIX(int pname, float* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFragmentLightModeliSGIX", ExactSpelling = true)]
			internal extern static void glFragmentLightModeliSGIX(int pname, int param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFragmentLightModelivSGIX", ExactSpelling = true)]
			internal extern static unsafe void glFragmentLightModelivSGIX(int pname, int* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFragmentMaterialfSGIX", ExactSpelling = true)]
			internal extern static void glFragmentMaterialfSGIX(int face, int pname, float param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFragmentMaterialfvSGIX", ExactSpelling = true)]
			internal extern static unsafe void glFragmentMaterialfvSGIX(int face, int pname, float* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFragmentMaterialiSGIX", ExactSpelling = true)]
			internal extern static void glFragmentMaterialiSGIX(int face, int pname, int param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFragmentMaterialivSGIX", ExactSpelling = true)]
			internal extern static unsafe void glFragmentMaterialivSGIX(int face, int pname, int* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFrameTerminatorGREMEDY", ExactSpelling = true)]
			internal extern static void glFrameTerminatorGREMEDY();

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glFrameZoomSGIX", ExactSpelling = true)]
			internal extern static void glFrameZoomSGIX(int factor);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGenAsyncMarkersSGIX", ExactSpelling = true)]
			internal extern static UInt32 glGenAsyncMarkersSGIX(Int32 range);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGenFencesAPPLE", ExactSpelling = true)]
			internal extern static unsafe void glGenFencesAPPLE(Int32 n, [Out]UInt32* fences);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGenVertexArraysAPPLE", ExactSpelling = true)]
			internal extern static unsafe void glGenVertexArraysAPPLE(Int32 n, [Out]UInt32* arrays);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetColorTableParameterfvSGI", ExactSpelling = true)]
			internal extern static unsafe void glGetColorTableParameterfvSGI(int target, int pname, [Out]float* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetColorTableParameterivSGI", ExactSpelling = true)]
			internal extern static unsafe void glGetColorTableParameterivSGI(int target, int pname, [Out]int* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetColorTableSGI", ExactSpelling = true)]
			internal extern static void glGetColorTableSGI(int target, int format, int type, [Out]IntPtr table);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetDetailTexFuncSGIS", ExactSpelling = true)]
			internal extern static unsafe void glGetDetailTexFuncSGIS(int target, [Out]float* points);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetFogFuncSGIS", ExactSpelling = true)]
			internal extern static unsafe void glGetFogFuncSGIS([Out]float* points);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetFragmentLightfvSGIX", ExactSpelling = true)]
			internal extern static unsafe void glGetFragmentLightfvSGIX(int light, int pname, [Out]float* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetFragmentLightivSGIX", ExactSpelling = true)]
			internal extern static unsafe void glGetFragmentLightivSGIX(int light, int pname, [Out]int* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetFragmentMaterialfvSGIX", ExactSpelling = true)]
			internal extern static unsafe void glGetFragmentMaterialfvSGIX(int face, int pname, [Out]float* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetFragmentMaterialivSGIX", ExactSpelling = true)]
			internal extern static unsafe void glGetFragmentMaterialivSGIX(int face, int pname, [Out]int* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetImageTransformParameterfvHP", ExactSpelling = true)]
			internal extern static unsafe void glGetImageTransformParameterfvHP(int target, int pname, [Out]float* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetImageTransformParameterivHP", ExactSpelling = true)]
			internal extern static unsafe void glGetImageTransformParameterivHP(int target, int pname, [Out]int* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetInstrumentsSGIX", ExactSpelling = true)]
			internal extern static int glGetInstrumentsSGIX();

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetListParameterfvSGIX", ExactSpelling = true)]
			internal extern static unsafe void glGetListParameterfvSGIX(UInt32 list, int pname, [Out]float* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetListParameterivSGIX", ExactSpelling = true)]
			internal extern static unsafe void glGetListParameterivSGIX(UInt32 list, int pname, [Out]int* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetObjectParameterivAPPLE", ExactSpelling = true)]
			internal extern static unsafe void glGetObjectParameterivAPPLE(int objectType, UInt32 name, int pname, [Out]int* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetPixelTexGenParameterfvSGIS", ExactSpelling = true)]
			internal extern static unsafe void glGetPixelTexGenParameterfvSGIS(int pname, [Out]float* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetPixelTexGenParameterivSGIS", ExactSpelling = true)]
			internal extern static unsafe void glGetPixelTexGenParameterivSGIS(int pname, [Out]int* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetSharpenTexFuncSGIS", ExactSpelling = true)]
			internal extern static unsafe void glGetSharpenTexFuncSGIS(int target, [Out]float* points);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetTexFilterFuncSGIS", ExactSpelling = true)]
			internal extern static unsafe void glGetTexFilterFuncSGIS(int target, int filter, [Out]float* weights);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGetTexParameterPointervAPPLE", ExactSpelling = true)]
			internal extern static unsafe void glGetTexParameterPointervAPPLE(int target, int pname, [Out]IntPtr @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGlobalAlphaFactorbSUN", ExactSpelling = true)]
			internal extern static void glGlobalAlphaFactorbSUN(sbyte factor);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGlobalAlphaFactordSUN", ExactSpelling = true)]
			internal extern static void glGlobalAlphaFactordSUN(double factor);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGlobalAlphaFactorfSUN", ExactSpelling = true)]
			internal extern static void glGlobalAlphaFactorfSUN(float factor);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGlobalAlphaFactoriSUN", ExactSpelling = true)]
			internal extern static void glGlobalAlphaFactoriSUN(int factor);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGlobalAlphaFactorsSUN", ExactSpelling = true)]
			internal extern static void glGlobalAlphaFactorsSUN(Int16 factor);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGlobalAlphaFactorubSUN", ExactSpelling = true)]
			internal extern static void glGlobalAlphaFactorubSUN(byte factor);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGlobalAlphaFactoruiSUN", ExactSpelling = true)]
			internal extern static void glGlobalAlphaFactoruiSUN(UInt32 factor);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glGlobalAlphaFactorusSUN", ExactSpelling = true)]
			internal extern static void glGlobalAlphaFactorusSUN(UInt16 factor);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glHintPGI", ExactSpelling = true)]
			internal extern static void glHintPGI(int target, int mode);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glIglooInterfaceSGIX", ExactSpelling = true)]
			internal extern static void glIglooInterfaceSGIX(int pname, IntPtr @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glImageTransformParameterfHP", ExactSpelling = true)]
			internal extern static void glImageTransformParameterfHP(int target, int pname, float param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glImageTransformParameterfvHP", ExactSpelling = true)]
			internal extern static unsafe void glImageTransformParameterfvHP(int target, int pname, float* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glImageTransformParameteriHP", ExactSpelling = true)]
			internal extern static void glImageTransformParameteriHP(int target, int pname, int param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glImageTransformParameterivHP", ExactSpelling = true)]
			internal extern static unsafe void glImageTransformParameterivHP(int target, int pname, int* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glInstrumentsBufferSGIX", ExactSpelling = true)]
			internal extern static unsafe void glInstrumentsBufferSGIX(Int32 size, [Out]int* buffer);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glIsAsyncMarkerSGIX", ExactSpelling = true)]
			internal extern static bool glIsAsyncMarkerSGIX(UInt32 marker);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glIsFenceAPPLE", ExactSpelling = true)]
			internal extern static bool glIsFenceAPPLE(UInt32 fence);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glIsVertexArrayAPPLE", ExactSpelling = true)]
			internal extern static bool glIsVertexArrayAPPLE(UInt32 array);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glIsVertexAttribEnabledAPPLE", ExactSpelling = true)]
			internal extern static bool glIsVertexAttribEnabledAPPLE(UInt32 index, int pname);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glLightEnviSGIX", ExactSpelling = true)]
			internal extern static void glLightEnviSGIX(int pname, int param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glListParameterfSGIX", ExactSpelling = true)]
			internal extern static void glListParameterfSGIX(UInt32 list, int pname, float param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glListParameterfvSGIX", ExactSpelling = true)]
			internal extern static unsafe void glListParameterfvSGIX(UInt32 list, int pname, float* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glListParameteriSGIX", ExactSpelling = true)]
			internal extern static void glListParameteriSGIX(UInt32 list, int pname, int param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glListParameterivSGIX", ExactSpelling = true)]
			internal extern static unsafe void glListParameterivSGIX(UInt32 list, int pname, int* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glLoadIdentityDeformationMapSGIX", ExactSpelling = true)]
			internal extern static void glLoadIdentityDeformationMapSGIX(uint mask);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glMapVertexAttrib1dAPPLE", ExactSpelling = true)]
			internal extern static unsafe void glMapVertexAttrib1dAPPLE(UInt32 index, UInt32 size, double u1, double u2, int stride, int order, double* points);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glMapVertexAttrib1fAPPLE", ExactSpelling = true)]
			internal extern static unsafe void glMapVertexAttrib1fAPPLE(UInt32 index, UInt32 size, float u1, float u2, int stride, int order, float* points);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glMapVertexAttrib2dAPPLE", ExactSpelling = true)]
			internal extern static unsafe void glMapVertexAttrib2dAPPLE(UInt32 index, UInt32 size, double u1, double u2, int ustride, int uorder, double v1, double v2, int vstride, int vorder, double* points);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glMapVertexAttrib2fAPPLE", ExactSpelling = true)]
			internal extern static unsafe void glMapVertexAttrib2fAPPLE(UInt32 index, UInt32 size, float u1, float u2, int ustride, int uorder, float v1, float v2, int vstride, int vorder, float* points);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glMultiDrawElementArrayAPPLE", ExactSpelling = true)]
			internal extern static unsafe void glMultiDrawElementArrayAPPLE(int mode, int* first, Int32* count, Int32 primcount);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glMultiDrawRangeElementArrayAPPLE", ExactSpelling = true)]
			internal extern static unsafe void glMultiDrawRangeElementArrayAPPLE(int mode, UInt32 start, UInt32 end, int* first, Int32* count, Int32 primcount);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glMultiModeDrawArraysIBM", ExactSpelling = true)]
			internal extern static unsafe void glMultiModeDrawArraysIBM(int* mode, int* first, Int32* count, Int32 primcount, int modestride);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glMultiModeDrawElementsIBM", ExactSpelling = true)]
			internal extern static unsafe void glMultiModeDrawElementsIBM(int* mode, Int32* count, int type, IntPtr* indices, Int32 primcount, int modestride);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glNormalPointervINTEL", ExactSpelling = true)]
			internal extern static unsafe void glNormalPointervINTEL(int type, IntPtr* pointer);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glObjectPurgeableAPPLE", ExactSpelling = true)]
			internal extern static int glObjectPurgeableAPPLE(int objectType, UInt32 name, int option);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glObjectUnpurgeableAPPLE", ExactSpelling = true)]
			internal extern static int glObjectUnpurgeableAPPLE(int objectType, UInt32 name, int option);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glPixelTexGenParameterfSGIS", ExactSpelling = true)]
			internal extern static void glPixelTexGenParameterfSGIS(int pname, float param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glPixelTexGenParameterfvSGIS", ExactSpelling = true)]
			internal extern static unsafe void glPixelTexGenParameterfvSGIS(int pname, float* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glPixelTexGenParameteriSGIS", ExactSpelling = true)]
			internal extern static void glPixelTexGenParameteriSGIS(int pname, int param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glPixelTexGenParameterivSGIS", ExactSpelling = true)]
			internal extern static unsafe void glPixelTexGenParameterivSGIS(int pname, int* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glPixelTexGenSGIX", ExactSpelling = true)]
			internal extern static void glPixelTexGenSGIX(int mode);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glPointParameterfSGIS", ExactSpelling = true)]
			internal extern static void glPointParameterfSGIS(int pname, float param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glPointParameterfvSGIS", ExactSpelling = true)]
			internal extern static unsafe void glPointParameterfvSGIS(int pname, float* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glPollAsyncSGIX", ExactSpelling = true)]
			internal extern static unsafe int glPollAsyncSGIX([Out]UInt32 markerp);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glPollInstrumentsSGIX", ExactSpelling = true)]
			internal extern static unsafe int glPollInstrumentsSGIX([Out]int marker_p);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glReadInstrumentsSGIX", ExactSpelling = true)]
			internal extern static void glReadInstrumentsSGIX(int marker);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glReferencePlaneSGIX", ExactSpelling = true)]
			internal extern static unsafe void glReferencePlaneSGIX(double* equation);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glReplacementCodePointerSUN", ExactSpelling = true)]
			internal extern static unsafe void glReplacementCodePointerSUN(int type, Int32 stride, IntPtr* pointer);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glReplacementCodeubSUN", ExactSpelling = true)]
			internal extern static void glReplacementCodeubSUN(byte code);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glReplacementCodeubvSUN", ExactSpelling = true)]
			internal extern static unsafe void glReplacementCodeubvSUN(byte* code);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glReplacementCodeuiSUN", ExactSpelling = true)]
			internal extern static void glReplacementCodeuiSUN(UInt32 code);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glReplacementCodeuivSUN", ExactSpelling = true)]
			internal extern static unsafe void glReplacementCodeuivSUN(UInt32* code);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glReplacementCodeusSUN", ExactSpelling = true)]
			internal extern static void glReplacementCodeusSUN(UInt16 code);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glReplacementCodeusvSUN", ExactSpelling = true)]
			internal extern static unsafe void glReplacementCodeusvSUN(UInt16* code);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glResizeBuffersMESA", ExactSpelling = true)]
			internal extern static void glResizeBuffersMESA();

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glSampleMaskSGIS", ExactSpelling = true)]
			internal extern static void glSampleMaskSGIS(float value, bool invert);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glSamplePatternSGIS", ExactSpelling = true)]
			internal extern static void glSamplePatternSGIS(int pattern);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glSetFenceAPPLE", ExactSpelling = true)]
			internal extern static void glSetFenceAPPLE(UInt32 fence);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glSharpenTexFuncSGIS", ExactSpelling = true)]
			internal extern static unsafe void glSharpenTexFuncSGIS(int target, Int32 n, float* points);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glSpriteParameterfSGIX", ExactSpelling = true)]
			internal extern static void glSpriteParameterfSGIX(int pname, float param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glSpriteParameterfvSGIX", ExactSpelling = true)]
			internal extern static unsafe void glSpriteParameterfvSGIX(int pname, float* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glSpriteParameteriSGIX", ExactSpelling = true)]
			internal extern static void glSpriteParameteriSGIX(int pname, int param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glSpriteParameterivSGIX", ExactSpelling = true)]
			internal extern static unsafe void glSpriteParameterivSGIX(int pname, int* @params);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glStartInstrumentsSGIX", ExactSpelling = true)]
			internal extern static void glStartInstrumentsSGIX();

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glStopInstrumentsSGIX", ExactSpelling = true)]
			internal extern static void glStopInstrumentsSGIX(int marker);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glStringMarkerGREMEDY", ExactSpelling = true)]
			internal extern static void glStringMarkerGREMEDY(Int32 len, IntPtr @string);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glTagSampleBufferSGIX", ExactSpelling = true)]
			internal extern static void glTagSampleBufferSGIX();

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glTbufferMask3DFX", ExactSpelling = true)]
			internal extern static void glTbufferMask3DFX(UInt32 mask);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glTestFenceAPPLE", ExactSpelling = true)]
			internal extern static bool glTestFenceAPPLE(UInt32 fence);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glTestObjectAPPLE", ExactSpelling = true)]
			internal extern static bool glTestObjectAPPLE(int @object, UInt32 name);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glTexCoordPointervINTEL", ExactSpelling = true)]
			internal extern static unsafe void glTexCoordPointervINTEL(int size, int type, IntPtr* pointer);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glTexFilterFuncSGIS", ExactSpelling = true)]
			internal extern static unsafe void glTexFilterFuncSGIS(int target, int filter, Int32 n, float* weights);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glTexImage4DSGIS", ExactSpelling = true)]
			internal extern static void glTexImage4DSGIS(int target, int level, int internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, int border, int format, int type, IntPtr pixels);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glTexSubImage4DSGIS", ExactSpelling = true)]
			internal extern static void glTexSubImage4DSGIS(int target, int level, int xoffset, int yoffset, int zoffset, int woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, int format, int type, IntPtr pixels);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glTextureColorMaskSGIS", ExactSpelling = true)]
			internal extern static void glTextureColorMaskSGIS(bool red, bool green, bool blue, bool alpha);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glTextureRangeAPPLE", ExactSpelling = true)]
			internal extern static void glTextureRangeAPPLE(int target, Int32 length, IntPtr pointer);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glVertexArrayParameteriAPPLE", ExactSpelling = true)]
			internal extern static void glVertexArrayParameteriAPPLE(int pname, int param);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glVertexArrayRangeAPPLE", ExactSpelling = true)]
			internal extern static void glVertexArrayRangeAPPLE(Int32 length, [Out]IntPtr pointer);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glVertexPointervINTEL", ExactSpelling = true)]
			internal extern static unsafe void glVertexPointervINTEL(int size, int type, IntPtr* pointer);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos2dMESA", ExactSpelling = true)]
			internal extern static void glWindowPos2dMESA(double x, double y);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos2dvMESA", ExactSpelling = true)]
			internal extern static unsafe void glWindowPos2dvMESA(double* v);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos2fMESA", ExactSpelling = true)]
			internal extern static void glWindowPos2fMESA(float x, float y);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos2fvMESA", ExactSpelling = true)]
			internal extern static unsafe void glWindowPos2fvMESA(float* v);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos2iMESA", ExactSpelling = true)]
			internal extern static void glWindowPos2iMESA(int x, int y);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos2ivMESA", ExactSpelling = true)]
			internal extern static unsafe void glWindowPos2ivMESA(int* v);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos2sMESA", ExactSpelling = true)]
			internal extern static void glWindowPos2sMESA(Int16 x, Int16 y);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos2svMESA", ExactSpelling = true)]
			internal extern static unsafe void glWindowPos2svMESA(Int16* v);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos3dMESA", ExactSpelling = true)]
			internal extern static void glWindowPos3dMESA(double x, double y, double z);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos3dvMESA", ExactSpelling = true)]
			internal extern static unsafe void glWindowPos3dvMESA(double* v);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos3fMESA", ExactSpelling = true)]
			internal extern static void glWindowPos3fMESA(float x, float y, float z);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos3fvMESA", ExactSpelling = true)]
			internal extern static unsafe void glWindowPos3fvMESA(float* v);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos3iMESA", ExactSpelling = true)]
			internal extern static void glWindowPos3iMESA(int x, int y, int z);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos3ivMESA", ExactSpelling = true)]
			internal extern static unsafe void glWindowPos3ivMESA(int* v);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos3sMESA", ExactSpelling = true)]
			internal extern static void glWindowPos3sMESA(Int16 x, Int16 y, Int16 z);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos3svMESA", ExactSpelling = true)]
			internal extern static unsafe void glWindowPos3svMESA(Int16* v);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos4dMESA", ExactSpelling = true)]
			internal extern static void glWindowPos4dMESA(double x, double y, double z, double w);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos4dvMESA", ExactSpelling = true)]
			internal extern static unsafe void glWindowPos4dvMESA(double* v);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos4fMESA", ExactSpelling = true)]
			internal extern static void glWindowPos4fMESA(float x, float y, float z, float w);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos4fvMESA", ExactSpelling = true)]
			internal extern static unsafe void glWindowPos4fvMESA(float* v);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos4iMESA", ExactSpelling = true)]
			internal extern static void glWindowPos4iMESA(int x, int y, int z, int w);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos4ivMESA", ExactSpelling = true)]
			internal extern static unsafe void glWindowPos4ivMESA(int* v);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos4sMESA", ExactSpelling = true)]
			internal extern static void glWindowPos4sMESA(Int16 x, Int16 y, Int16 z, Int16 w);

			[System.Security.SuppressUnmanagedCodeSecurity()]
			[System.Runtime.InteropServices.DllImport(Library, EntryPoint = "glWindowPos4svMESA", ExactSpelling = true)]
			internal extern static unsafe void glWindowPos4svMESA(Int16* v);

		}

	}
}
